diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2012-04-14 09:54:34 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-04-15 14:25:34 -0700 |
commit | 17c82211ec2d29a6e7221948cba8dae9074dc5a6 (patch) | |
tree | 91e2b82f58aed54df0dbff5e78c81e52495732d9 /sha1_name.c | |
parent | bb0dab5d617219d7efe8815cadef6d98c4bc3df8 (diff) | |
download | git-17c82211ec2d29a6e7221948cba8dae9074dc5a6.tar.gz |
Be more specific if upstream branch is not tracked
If the branch configured as upstream didn't have a local tracking
branch, git said "Upstream branch not found". We can be more helpful,
and separate the cases when upstream is not configured, and when it is
configured, but the upstream branch is not tracked in a local branch.
The following configuration leads to the second scenario:
[remote "origin"]
url = ...
fetch = refs/heads/master
[branch "master"]
remote = origin
merge = refs/heads/master
'git pull' will work on master, but master@{upstream} is not defined.
Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sha1_name.c')
-rw-r--r-- | sha1_name.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sha1_name.c b/sha1_name.c index e2d576ad7b..361708b7bb 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -865,7 +865,12 @@ int interpret_branch_name(const char *name, struct strbuf *buf) 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); + if (!upstream->merge) + return error("No upstream configured for branch '%s'", + upstream->name); + return error( + "Upstream branch '%s' not stored as a remote-tracking branch", + upstream->merge[0]->src); } free(cp); cp = shorten_unambiguous_ref(upstream->merge[0]->dst, 0); |