summaryrefslogtreecommitdiffstats
path: root/load-git.c
diff options
context:
space:
mode:
authorGravatar Linus Torvalds <torvalds@linux-foundation.org>2014-03-14 17:55:07 -0700
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-03-14 20:54:20 -0700
commit27c36ec4cf41a94855b6259213841cdbdae8e928 (patch)
treedc1f54dabc0576b6d374755ea088672b477c55bb /load-git.c
parente70bbb637e1dd631cb54c9880afe6c7ae04d0b3e (diff)
downloadsubsurface-27c36ec4cf41a94855b6259213841cdbdae8e928.tar.gz
Improved handling of git syntax names with no git repository
This makes "is_git_repository()" return non-NULL for all file names that match the git name pattern, even if we don't find an actual git repository there. That way, we won't fall back to writing out an XML file with an odd filename. If there is no actual git repository, we return a special invalid dummy pointer, and then the git reading and writing routines will catch it and return the appropriate error. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'load-git.c')
-rw-r--r--load-git.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/load-git.c b/load-git.c
index c861799b4..4040c1677 100644
--- a/load-git.c
+++ b/load-git.c
@@ -1243,7 +1243,11 @@ static int do_git_load(git_repository *repo, const char *branch)
*/
int git_load_dives(struct git_repository *repo, const char *branch)
{
- int ret = do_git_load(repo, branch);
+ int ret;
+
+ if (repo == dummy_git_repository)
+ return report_error("Unable to open git repository at '%s'", branch);
+ ret = do_git_load(repo, branch);
git_repository_free(repo);
free((void *)branch);
finish_active_dive();