[1/5]
Adds RESOLVE_REF_COMMON_DIR to resolve_ref_unsafe(). The second - fourth
patch depend on this. At the same time, this allows us to remove
reimplementation of resolve_ref_unsafe() in worktree.c: parse_ref().
[2/5]
Adds REF_COMMON_DIR flag to lock_ref_sha1_basic().
[3/5]
Adds create_symref_common_dir(). Same as create_symref() except it
doesn't consider $GIT_DIR. create_symref_common_dir("HEAD", some) always
updates .git/HEAD. The next patch uses this.
[4/5]
Fixes the issue of git branch -m.
The behavior when one failed has changed from v1: print an error and
continue.
% git branch -m oldname newname
error: Unable to create '/path/to/.git/worktrees/wt/HEAD.lock': Permission
denied
error: HEAD of working tree /path/to/wt is not updated.
error: Unable to create '/path/to/.git/worktrees/wt2/HEAD.lock': Permission
denied
error: HEAD of working tree /path/to/wt2 is not updated.
fatal: Branch renamed to newname, but HEAD is not updated!
[5/5]
Fixes an issue of git branch -d, v1 didn't include this.
I noticed git branch -d has same issue and this is for it.
This patch is unrelated to the above 4 patches, but the cause is same.
This can be applied separately.
Kazuki Yamaguchi (5):
refs: add new flag RESOLVE_REF_COMMON_DIR to resolve_ref_unsafe
refs: add REF_COMMON_DIR flag
refs: add create_symref_common_dir as a variation of create_symref
branch -m: update all per-worktree HEADs
branch -d: refuse deleting a branch which is currently checked out
branch.c | 32 ++++++++++++++++
branch.h | 7 ++++
builtin/branch.c | 15 ++++----
refs.h | 11 ++++++
refs/files-backend.c | 34 ++++++++++++++---
t/t3200-branch.sh | 29 +++++++++++++-
worktree.c | 105 ++++++++++++++++-----------------------------------
7 files changed, 147 insertions(+), 86 deletions(-)
--
2.8.0.rc4.21.g05df949
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html