diff options
author | Patrick Steinhardt <ps@pks.im> | 2017-02-17 11:14:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-02-17 11:14:53 +0100 |
commit | 021f4943a9482355c47122da4911c5272cefdb8d (patch) | |
tree | 5c6794e26dc2a1df083d50ccf95c8db51c513aae | |
parent | 95248be72fb9d685c59e6a5cd15582ddd3255e52 (diff) | |
parent | 6da6b425d899b122fe4cab99ec109a5ae5e344f5 (diff) | |
download | libgit2-021f4943a9482355c47122da4911c5272cefdb8d.tar.gz |
Merge pull request #4124 from pks-t/pks/worktree-refs
refdb: catch additional per-worktree refs
-rw-r--r-- | src/refdb_fs.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/src/refdb_fs.c b/src/refdb_fs.c index 3d690630e..def5302de 100644 --- a/src/refdb_fs.c +++ b/src/refdb_fs.c @@ -365,12 +365,17 @@ static const char *loose_parse_symbolic(git_buf *file_content) return refname_start; } +/* + * Returns whether a reference is stored per worktree or not. + * Per-worktree references are: + * + * - all pseudorefs, e.g. HEAD and MERGE_HEAD + * - all references stored inside of "refs/bisect/" + */ static bool is_per_worktree_ref(const char *ref_name) { - return strcmp("HEAD", ref_name) == 0 || - strcmp("FETCH_HEAD", ref_name) == 0 || - strcmp("MERGE_HEAD", ref_name) == 0 || - strcmp("ORIG_HEAD", ref_name) == 0; + return git__prefixcmp(ref_name, "refs/") != 0 || + git__prefixcmp(ref_name, "refs/bisect/") == 0; } static int loose_lookup( |