Commit 587a9ee7 authored by Conrad Irwin's avatar Conrad Irwin Committed by Junio C Hamano

Show interpreted branch name in error messages

Change the error message when doing: "git branch @{-1}",
"git checkout -b @{-1}", or "git branch -m foo @{-1}"

 * was: A branch named '@{-1}' already exists.
 * now: A branch named 'bar' already exists.
Signed-off-by: Conrad Irwin's avatarConrad Irwin <[email protected]>
Signed-off-by: default avatarJunio C Hamano <[email protected]>
parent 55c4a673
......@@ -146,7 +146,7 @@ int validate_new_branchname(const char *name, struct strbuf *ref, int force)
if (!ref_exists(ref->buf))
return 0;
else if (!force)
die("A branch named '%s' already exists.", name);
die("A branch named '%s' already exists.", ref->buf + strlen("refs/heads/"));
head = resolve_ref("HEAD", sha1, 0, NULL);
if (!is_bare_repository() && head && !strcmp(head, ref->buf))
......
......@@ -118,6 +118,15 @@ test_expect_success 'checkout -b to an existing branch fails' '
test_must_fail do_checkout branch2 $HEAD2
'
test_expect_success 'checkout -b to @{-1} fails with the right branch name' '
git reset --hard HEAD &&
git checkout branch1 &&
git checkout branch2 &&
echo >expect "fatal: A branch named '\''branch1'\'' already exists." &&
test_must_fail git checkout -b @{-1} 2>actual &&
test_cmp expect actual
'
test_expect_success 'checkout -B to an existing branch resets branch to HEAD' '
git checkout branch1 &&
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment