diff options
author | Conrad Irwin <conrad.irwin@gmail.com> | 2011-08-20 14:49:49 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-08-22 16:03:43 -0700 |
commit | 587a9ee7da348f5e6696720d770d0e0da597827c (patch) | |
tree | a5d378daeaec78a7d513056071b78c419b0ed515 | |
parent | 55c4a673070f40f2ef12d0be269e95f1df6825a9 (diff) | |
download | git-587a9ee7da348f5e6696720d770d0e0da597827c.tar.gz |
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 <conrad.irwin@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | branch.c | 2 | ||||
-rwxr-xr-x | t/t2018-checkout-branch.sh | 9 |
2 files changed, 10 insertions, 1 deletions
@@ -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)) diff --git a/t/t2018-checkout-branch.sh b/t/t2018-checkout-branch.sh index b66db2b881..75874e85df 100755 --- a/t/t2018-checkout-branch.sh +++ b/t/t2018-checkout-branch.sh @@ -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 && |