From 8c1cc4524d19e05b816f3388448cacd735d64504 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sun, 27 Dec 2015 10:04:05 -0800 Subject: [PATCH] Don't reload identical data If we already have the same SHA loaded and no changes have been made to the dive list then there is no point in loading the dives again. Signed-off-by: Dirk Hohndel --- subsurface-core/file.c | 9 +++++++++ 1 file changed, 9 insertions(+) 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 #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;