summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/git-access.c7
-rw-r--r--core/git-access.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/core/git-access.c b/core/git-access.c
index 846fcba96..be1f39120 100644
--- a/core/git-access.c
+++ b/core/git-access.c
@@ -37,6 +37,7 @@ bool git_local_only = true;
#else
bool git_local_only = false;
#endif
+bool git_remote_sync_successful = false;
int (*update_progress_cb)(const char *) = NULL;
@@ -606,6 +607,7 @@ static int check_remote_status(git_repository *repo, git_remote *origin, const c
git_reference_free(remote_ref);
}
git_reference_free(local_ref);
+ git_remote_sync_successful = (error == 0);
return error;
}
@@ -942,6 +944,8 @@ static struct git_repository *get_remote_repo(const char *localdir, const char *
git_local_only = false;
ret = create_local_repo(localdir, remote, branch, rt);
git_local_only = glo;
+ if (ret)
+ git_remote_sync_successful = true;
return ret;
}
@@ -1033,6 +1037,9 @@ struct git_repository *is_git_repository(const char *filename, const char **bran
git_repository *repo;
char *loc, *branch;
+ /* we are looking at a new potential remote, but we haven't synced with it */
+ git_remote_sync_successful = false;
+
flen = strlen(filename);
if (!flen || filename[--flen] != ']')
return NULL;
diff --git a/core/git-access.h b/core/git-access.h
index 8e20395a4..b02bd3280 100644
--- a/core/git-access.h
+++ b/core/git-access.h
@@ -24,6 +24,7 @@ extern const char *get_sha(git_repository *repo, const char *branch);
extern int do_git_save(git_repository *repo, const char *branch, const char *remote, bool select_only, bool create_empty);
extern const char *saved_git_id;
extern bool git_local_only;
+extern bool git_remote_sync_successful;
extern void clear_git_id(void);
extern void set_git_id(const struct git_oid *);
extern enum remote_transport url_to_remote_transport(const char *remote);