v3 only changes 07/16 but it's kinda important because I broke
packed-refs. packed-refs' path became $GIT_DIR/packed-refs instead of
$GIT_COMMON_DIR/packed-refs and as a result the majority of refs will
disappear in linked worktrees. Interdiff
diff --git a/refs/files-backend.c b/refs/files-backend.c
index 685ea5c14..82be3f90f 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -938,9 +938,11 @@ static void files_path(struct files_ref_store *refs,
struct strbuf *sb,
va_start(vap, fmt);
strbuf_vaddf(&tmp, fmt, vap);
va_end(vap);
- if (is_per_worktree_ref(tmp.buf) ||
- (skip_prefix(tmp.buf, "logs/", &ref) &&
- is_per_worktree_ref(ref)))
+ if (!strcmp(tmp.buf, "packed-refs") || !strcmp(tmp.buf, "logs"))
+ strbuf_addf(sb, "%s/%s", refs->gitcommondir.buf, tmp.buf);
+ else if (is_per_worktree_ref(tmp.buf) ||
+ (skip_prefix(tmp.buf, "logs/", &ref) &&
+ is_per_worktree_ref(ref)))
strbuf_addf(sb, "%s/%s", refs->gitdir.buf, tmp.buf);
else
strbuf_addf(sb, "%s/%s", refs->gitcommondir.buf, tmp.buf);
Nguyễn Thái Ngọc Duy (16):
refs-internal.c: make files_log_ref_write() static
files-backend: convert git_path() to strbuf_git_path()
files-backend: add files_path()
files-backend: replace *git_path*() with files_path()
refs.c: share is_per_worktree_ref() to files-backend.c
refs-internal.h: correct is_per_worktree_ref()
files-backend: remove the use of git_path()
refs.c: introduce get_main_ref_store()
refs: rename lookup_ref_store() to lookup_submodule_ref_store()
refs.c: flatten get_ref_store() a bit
refs.c: kill register_ref_store(), add register_submodule_ref_store()
refs.c: make get_main_ref_store() public and use it
path.c: move some code out of strbuf_git_path_submodule()
refs: move submodule code out of files-backend.c
files-backend: remove submodule_allowed from files_downcast()
refs: rename get_ref_store() to get_submodule_ref_store() and make it public
path.c | 34 ++---
refs.c | 144 +++++++++++----------
refs.h | 13 ++
refs/files-backend.c | 349 +++++++++++++++++++++++++++++++--------------------
refs/refs-internal.h | 28 ++---
submodule.c | 31 +++++
submodule.h | 1 +
7 files changed, 348 insertions(+), 252 deletions(-)
--
2.11.0.157.gd943d85