If the branch configured as upstream was missing from remote.<remote>.fetch, 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 specific branch is not fetched. Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@xxxxxxxxx> --- sha1_name.c | 6 +++++- t/t1507-rev-parse-upstream.sh | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/sha1_name.c b/sha1_name.c index e2d576a..5b1b0f9 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -865,7 +865,11 @@ 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 fetched from remote '%s'", + upstream->merge[0]->src, upstream->remote_name); } free(cp); cp = shorten_unambiguous_ref(upstream->merge[0]->dst, 0); diff --git a/t/t1507-rev-parse-upstream.sh b/t/t1507-rev-parse-upstream.sh index 05c4bc4..112025f 100755 --- a/t/t1507-rev-parse-upstream.sh +++ b/t/t1507-rev-parse-upstream.sh @@ -125,7 +125,7 @@ test_expect_success 'branch@{u} works when tracking a local branch' ' test_expect_success 'branch@{u} error message when no upstream' ' cat >expect <<-EOF && - error: No upstream branch found for ${sq}non-tracking${sq} + error: No upstream configured for branch ${sq}non-tracking${sq} fatal: Needed a single revision EOF (cd clone && @@ -135,7 +135,7 @@ test_expect_success 'branch@{u} error message when no upstream' ' test_expect_success '@{u} error message when no upstream' ' cat >expect <<-EOF && - error: No upstream branch found for ${sq}master${sq} + error: No upstream configured for branch ${sq}master${sq} fatal: Needed a single revision EOF test_must_fail git rev-parse --verify @{u} 2>actual && @@ -163,7 +163,7 @@ test_expect_success '@{u} error message when not on a branch' ' test_expect_success 'branch@{u} error message if upstream branch not fetched' ' cat >expect <<-EOF && - error: No upstream branch found for ${sq}bad-upstream${sq} + error: Upstream branch ${sq}refs/heads/side${sq} not fetched from remote ${sq}master-only${sq} fatal: Needed a single revision EOF error_message bad-upstream@{u} 2>actual && -- 1.7.10.344.g387ed -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html