Merge branch 'nd/worktree-kill-parse-ref' into maint
"git branch -M a b" while on a branch that is completely unrelated to either branch a or branch b misbehaved when multiple worktree was in use. This has been fixed. * nd/worktree-kill-parse-ref: branch: fix branch renaming not updating HEADs correctly
This commit is contained in:
commit
5253ad109a
5
branch.c
5
branch.c
@ -357,8 +357,9 @@ int replace_each_worktree_head_symref(const char *oldref, const char *newref,
|
|||||||
|
|
||||||
if (worktrees[i]->is_detached)
|
if (worktrees[i]->is_detached)
|
||||||
continue;
|
continue;
|
||||||
if (worktrees[i]->head_ref &&
|
if (!worktrees[i]->head_ref)
|
||||||
strcmp(oldref, worktrees[i]->head_ref))
|
continue;
|
||||||
|
if (strcmp(oldref, worktrees[i]->head_ref))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
refs = get_worktree_ref_store(worktrees[i]);
|
refs = get_worktree_ref_store(worktrees[i]);
|
||||||
|
@ -162,6 +162,19 @@ test_expect_success 'git branch -M baz bam should add entries to .git/logs/HEAD'
|
|||||||
grep "^0\{40\}.*$msg$" .git/logs/HEAD
|
grep "^0\{40\}.*$msg$" .git/logs/HEAD
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'git branch -M should leave orphaned HEAD alone' '
|
||||||
|
git init orphan &&
|
||||||
|
(
|
||||||
|
cd orphan &&
|
||||||
|
test_commit initial &&
|
||||||
|
git checkout --orphan lonely &&
|
||||||
|
grep lonely .git/HEAD &&
|
||||||
|
test_path_is_missing .git/refs/head/lonely &&
|
||||||
|
git branch -M master mistress &&
|
||||||
|
grep lonely .git/HEAD
|
||||||
|
)
|
||||||
|
'
|
||||||
|
|
||||||
test_expect_success 'resulting reflog can be shown by log -g' '
|
test_expect_success 'resulting reflog can be shown by log -g' '
|
||||||
oid=$(git rev-parse HEAD) &&
|
oid=$(git rev-parse HEAD) &&
|
||||||
cat >expect <<-EOF &&
|
cat >expect <<-EOF &&
|
||||||
|
@ -30,7 +30,7 @@ static void add_head_info(struct worktree *wt)
|
|||||||
|
|
||||||
target = refs_resolve_ref_unsafe(get_worktree_ref_store(wt),
|
target = refs_resolve_ref_unsafe(get_worktree_ref_store(wt),
|
||||||
"HEAD",
|
"HEAD",
|
||||||
RESOLVE_REF_READING,
|
0,
|
||||||
wt->head_sha1, &flags);
|
wt->head_sha1, &flags);
|
||||||
if (!target)
|
if (!target)
|
||||||
return;
|
return;
|
||||||
|
Loading…
Reference in New Issue
Block a user