git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH v2 4/5] Be more specific if upstream branch is not tracked

From
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Date
Apr 14, 2012, 07:54 UTC
Message-ID
<1334390075-25467-5-git-send-email-zbyszek@in.waw.pl>
In-Reply-To
<1334390075-25467-1-git-send-email-zbyszek@in.waw.pl>

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>
---
 sha1_name.c                   |    7 ++++++-
 t/t1507-rev-parse-upstream.sh |    6 +++---
 2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/sha1_name.c b/sha1_name.c
index e2d576a..361708b 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);
diff --git a/t/t1507-rev-parse-upstream.sh b/t/t1507-rev-parse-upstream.sh
index 2b8ba31..e742ce0 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
 	error_message non-tracking@{u} 2>actual &&
@@ -134,7 +134,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 &&
@@ -162,7 +162,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 stored as a remote-tracking branch
 	fatal: Needed a single revision
 	EOF
 	error_message bad-upstream@{u} 2>actual &&
-- 
1.7.10.226.gfe575
Previous: Zbigniew Jędrzejewski-SzmekNext: Zbigniew Jędrzejewski-Szmek
Message 21 of 24 in “provide better error messages for @{upstream}”
  1. 0/5 provide better error messages for @{upstream}Zbigniew Jędrzejewski-Szmek, Apr 11, 2012
  2. 1/5 t1507: add additional tests for @{upstream}Zbigniew Jędrzejewski-Szmek, Apr 11, 2012
  3. Junio C HamanoApr 11, 2012
  4. Junio C HamanoApr 11, 2012
  5. Zbigniew Jędrzejewski-SzmekApr 11, 2012
  6. Matthieu MoyApr 11, 2012
  7. Zbigniew Jędrzejewski-SzmekApr 11, 2012
  8. 2/5 Provide branch name in error message when using @{u}Zbigniew Jędrzejewski-Szmek, Apr 11, 2012
  9. Junio C HamanoApr 11, 2012
  10. Zbigniew Jędrzejewski-SzmekApr 11, 2012
  11. 3/5 Provide better message for barnhc_wiht_tpyo@{u}Zbigniew Jędrzejewski-Szmek, Apr 11, 2012
  12. 4/5 Be more specific if upstream branch is not fetchedZbigniew Jędrzejewski-Szmek, Apr 11, 2012
  13. Jeff KingApr 12, 2012
  14. Zbigniew Jędrzejewski-SzmekApr 12, 2012
  15. Junio C HamanoApr 12, 2012
  16. Jeff KingApr 12, 2012
  17. 0/5 provide better error messages for @{upstream}Zbigniew Jędrzejewski-Szmek, Apr 14, 2012
  18. 1/5 t1507: add tests to document @{upstream} behaviourZbigniew Jędrzejewski-Szmek, Apr 14, 2012
  19. 2/5 Provide branch name in error message when using @{u}Zbigniew Jędrzejewski-Szmek, Apr 14, 2012
  20. 3/5 Provide better message for barnhc_wiht_tpyo@{u}Zbigniew Jędrzejewski-Szmek, Apr 14, 2012
  21. 4/5 Be more specific if upstream branch is not trackedZbigniew Jędrzejewski-Szmek, Apr 14, 2012
  22. 5/5 i18n: mark @{upstream} error messages for translationZbigniew Jędrzejewski-Szmek, Apr 14, 2012
  23. Jeff KingApr 14, 2012
  24. 5/5 i18n: mark @{upstream} error messages for translationZbigniew Jędrzejewski-Szmek, Apr 11, 2012

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.