diff options
-rw-r--r-- | subsurface-core/file.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/subsurface-core/file.c b/subsurface-core/file.c index 0263da457..188a24100 100644 --- a/subsurface-core/file.c +++ b/subsurface-core/file.c @@ -9,6 +9,7 @@ #include <time.h> #include "dive.h" +#include "divelist.h" #include "file.h" #include "git-access.h" #include "qthelperfromc.h" @@ -447,6 +448,14 @@ int parse_file(const char *filename) * give up here and don't send errors about git repositories */ return 0; + /* do we already have this exact state loaded ? + * get the SHA and compare with what we currently have */ + const char * sha = get_sha(git, branch); + if (same_string(sha, saved_git_id) && !unsaved_changes()) { + fprintf(stderr, "already have loaded SHA %s - don't load again\n", sha); + return 0; + } + if (git && !git_load_dives(git, branch)) return 0; |