summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2012-04-14 09:54:33 +0200
committerLibravatar Junio C Hamano <gitster@pobox.com>2012-04-15 14:25:19 -0700
commitbb0dab5d617219d7efe8815cadef6d98c4bc3df8 (patch)
tree41472887fbae6fea7373ae94380e9ed3115dd233
parentProvide branch name in error message when using @{u} (diff)
downloadtgif-bb0dab5d617219d7efe8815cadef6d98c4bc3df8.tar.xz
Provide better message for barnhc_wiht_tpyo@{u}
Instead of just saying that no upstream exists for such branch, which is true but not very helpful, check that there's no refs/heads/barnhc_wiht_tpyo and tell it to the user. Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r--sha1_name.c5
-rwxr-xr-xt/t1507-rev-parse-upstream.sh2
2 files changed, 5 insertions, 2 deletions
diff --git a/sha1_name.c b/sha1_name.c
index c2fe1aae52..e2d576ad7b 100644
--- a/sha1_name.c
+++ b/sha1_name.c
@@ -862,8 +862,11 @@ int interpret_branch_name(const char *name, struct strbuf *buf)
*/
if (!upstream)
return error("HEAD does not point to a branch");
- if (!upstream->merge || !upstream->merge[0]->dst)
+ if (!upstream->merge || !upstream->merge[0]->dst) {
+ if (!ref_exists(upstream->refname))
+ return error("No such branch: '%s'", cp);
return error("No upstream branch found for '%s'", upstream->name);
+ }
free(cp);
cp = shorten_unambiguous_ref(upstream->merge[0]->dst, 0);
strbuf_reset(buf);
diff --git a/t/t1507-rev-parse-upstream.sh b/t/t1507-rev-parse-upstream.sh
index 2f4f0d1c02..2b8ba314a9 100755
--- a/t/t1507-rev-parse-upstream.sh
+++ b/t/t1507-rev-parse-upstream.sh
@@ -143,7 +143,7 @@ test_expect_success '@{u} error message when no upstream' '
test_expect_success 'branch@{u} error message with misspelt branch' '
cat >expect <<-EOF &&
- error: No upstream branch found for ${sq}no-such-branch${sq}
+ error: No such branch: ${sq}no-such-branch${sq}
fatal: Needed a single revision
EOF
error_message no-such-branch@{u} 2>actual &&