[PATCH v4 00/15] Remove submodule from files-backend.c
- From
Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
- Date
- Feb 18, 2017, 13:32 UTC
- Message-ID
- <20170218133303.3682-1-pclouds@gmail.com>
- In-Reply-To
- <20170217140436.17336-1-pclouds@gmail.com>
v4:
- is based on master+mh/ref-remove-empty-directory+mh/submodule-hash instead of mh/submodule-hash alone. It could merge with pu cleanly.
- 06/16 from v5, "correct is_per_worktree_ref", is removed. The "remove the use of git_path" patch is updated to handle it correctly even without that patch. More on this later.
- update "replace" typo in a commit message
The story behind the 06/16 removal is, in my simple view, there are per-repo and per-worktree refs. But refs.c and backends see them as three types: per-worktree, pseudo and normal/per-repo. Refs like ORIG_HEAD are _both_ per-worktree and pseudo.
06/16 reclassifies ORIG_HEAD from pseudo to per-worktree, which triggers a failure in t1400 because as pseudo refs, reflog will not be created while it will be for per-worktree. This new test is on master, not maint. I now fall back to treating both per-worktree and pseudo as per-worktree in files_path() only and keep classification unchanged.
Side note, my other two series seem to apply cleanly on top of this v3, so no resend.
Nguyễn Thái Ngọc Duy (15): 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 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 | 406 ++++++++++++++++++++++++++++++++------------------- refs/refs-internal.h | 28 ++-- submodule.c | 31 ++++ submodule.h | 1 + 7 files changed, 396 insertions(+), 261 deletions(-)
-- 2.11.0.157.gd943d85