summaryrefslogtreecommitdiff
path: root/src/repository.c
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2015-10-15 15:58:05 +0200
committerPatrick Steinhardt <ps@pks.im>2017-02-13 10:28:15 +0100
commit79ab3ef69f4905a548bd3a301c348a48454c48f7 (patch)
treea707b6af1e5ed933366acfe5ea1118551e343160 /src/repository.c
parentc5f3da9692f8de15550fed47e377c586f99f7c5a (diff)
downloadlibgit2-79ab3ef69f4905a548bd3a301c348a48454c48f7.tar.gz
repository: introduce is_worktree variable
Diffstat (limited to 'src/repository.c')
-rw-r--r--src/repository.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/repository.c b/src/repository.c
index ed7038543..1f8035aed 100644
--- a/src/repository.c
+++ b/src/repository.c
@@ -254,6 +254,7 @@ int git_repository_new(git_repository **out)
GITERR_CHECK_ALLOC(repo);
repo->is_bare = 1;
+ repo->is_worktree = 0;
return 0;
}
@@ -558,6 +559,7 @@ int git_repository_open_bare(
/* of course we're bare! */
repo->is_bare = 1;
+ repo->is_worktree = 0;
repo->workdir = NULL;
*repo_ptr = repo;
@@ -772,6 +774,9 @@ int git_repository_open_ext(
GITERR_CHECK_ALLOC(repo->commondir);
}
+ if (repo->path_gitlink && repo->commondir && strcmp(repo->path_gitlink, repo->commondir))
+ repo->is_worktree = 1;
+
/*
* We'd like to have the config, but git doesn't particularly
* care if it's not there, so we need to deal with that.
@@ -2186,6 +2191,12 @@ int git_repository_is_bare(git_repository *repo)
return repo->is_bare;
}
+int git_repository_is_worktree(git_repository *repo)
+{
+ assert(repo);
+ return repo->is_worktree;
+}
+
int git_repository_set_bare(git_repository *repo)
{
int error;