oldref.buf + 11);
}
- if (replace_each_worktree_head_symref(oldref.buf, newref.buf, logmsg.buf)) {
- if (copy)
- die(_("Branch copied to %s, but HEAD is not updated!"), newname);
- else
- die(_("Branch renamed to %s, but HEAD is not updated!"), newname);
- }
+ if (!copy &&
+ replace_each_worktree_head_symref(oldref.buf, newref.buf, logmsg.buf))
+ die(_("Branch renamed to %s, but HEAD is not updated!"), newname);
strbuf_release(&logmsg);
test_cmp expect actual
'
-test_expect_success 'git branch -c ee ef should copy and checkout branch ef' '
+test_expect_success 'git branch -c ee ef should copy ee to create branch ef' '
git checkout -b ee &&
git reflog exists refs/heads/ee &&
git config branch.ee.dummy Hello &&
git reflog exists refs/heads/ef &&
test $(git config branch.ee.dummy) = Hello &&
test $(git config branch.ef.dummy) = Hello &&
- test $(git rev-parse --abbrev-ref HEAD) = ef
+ test $(git rev-parse --abbrev-ref HEAD) = ee
'
test_expect_success 'git branch -c f/f g/g should work' '
git checkout -b c1 &&
git branch c2 &&
git branch -C c1 c2 &&
- test $(git rev-parse --abbrev-ref HEAD) = c2
+ test $(git rev-parse --abbrev-ref HEAD) = c1
'
-test_expect_success 'git branch -C c1 c2 should add entries to .git/logs/HEAD' '
+test_expect_success 'git branch -C c1 c2 should never touch HEAD' '
msg="Branch: copied refs/heads/c1 to refs/heads/c2" &&
- grep "$msg$" .git/logs/HEAD
+ ! grep "$msg$" .git/logs/HEAD
'
test_expect_success 'git branch -C master should work when master is checked out' '