Skip to content

Commit 17bf4ff

Browse files
artagnongitster
authored andcommitted
sha1_name: fix error message for @{u}
Currently, when no (valid) upstream is configured for a branch, you get an error like: $ git show @{u} error: No upstream configured for branch 'upstream-error' error: No upstream configured for branch 'upstream-error' fatal: ambiguous argument '@{u}': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' The "error: " line actually appears twice, and the rest of the error message is useless. In sha1_name.c:interpret_branch_name(), there is really no point in processing further if @{u} couldn't be resolved, and we might as well die() instead of returning an error(). After making this change, you get: $ git show @{u} fatal: No upstream configured for branch 'upstream-error' Also tweak a few tests in t1507 to expect this output. This only turns error() that may be called after we know we are dealing with an @{upstream} marker into die(), without touching silent error returns "return -1" from the function. Any caller that wants to handle an error condition itself will not be hurt by this change, unless they want to see the message from error() and then exit silently without giving its own message, which needs to be fixed anyway. Signed-off-by: Ramkumar Ramachandra <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 9134a46 commit 17bf4ff

File tree

2 files changed

+12
-16
lines changed

2 files changed

+12
-16
lines changed

sha1_name.c

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1033,14 +1033,15 @@ int interpret_branch_name(const char *name, struct strbuf *buf)
10331033
* points to something different than a branch.
10341034
*/
10351035
if (!upstream)
1036-
return error(_("HEAD does not point to a branch"));
1036+
die(_("HEAD does not point to a branch"));
10371037
if (!upstream->merge || !upstream->merge[0]->dst) {
10381038
if (!ref_exists(upstream->refname))
1039-
return error(_("No such branch: '%s'"), cp);
1040-
if (!upstream->merge)
1041-
return error(_("No upstream configured for branch '%s'"),
1042-
upstream->name);
1043-
return error(
1039+
die(_("No such branch: '%s'"), cp);
1040+
if (!upstream->merge) {
1041+
die(_("No upstream configured for branch '%s'"),
1042+
upstream->name);
1043+
}
1044+
die(
10441045
_("Upstream branch '%s' not stored as a remote-tracking branch"),
10451046
upstream->merge[0]->src);
10461047
}

t/t1507-rev-parse-upstream.sh

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -129,35 +129,31 @@ test_expect_success 'branch@{u} works when tracking a local branch' '
129129

130130
test_expect_success 'branch@{u} error message when no upstream' '
131131
cat >expect <<-EOF &&
132-
error: No upstream configured for branch ${sq}non-tracking${sq}
133-
fatal: Needed a single revision
132+
fatal: No upstream configured for branch ${sq}non-tracking${sq}
134133
EOF
135134
error_message non-tracking@{u} 2>actual &&
136135
test_i18ncmp expect actual
137136
'
138137

139138
test_expect_success '@{u} error message when no upstream' '
140139
cat >expect <<-EOF &&
141-
error: No upstream configured for branch ${sq}master${sq}
142-
fatal: Needed a single revision
140+
fatal: No upstream configured for branch ${sq}master${sq}
143141
EOF
144142
test_must_fail git rev-parse --verify @{u} 2>actual &&
145143
test_i18ncmp expect actual
146144
'
147145

148146
test_expect_success 'branch@{u} error message with misspelt branch' '
149147
cat >expect <<-EOF &&
150-
error: No such branch: ${sq}no-such-branch${sq}
151-
fatal: Needed a single revision
148+
fatal: No such branch: ${sq}no-such-branch${sq}
152149
EOF
153150
error_message no-such-branch@{u} 2>actual &&
154151
test_i18ncmp expect actual
155152
'
156153

157154
test_expect_success '@{u} error message when not on a branch' '
158155
cat >expect <<-EOF &&
159-
error: HEAD does not point to a branch
160-
fatal: Needed a single revision
156+
fatal: HEAD does not point to a branch
161157
EOF
162158
git checkout HEAD^0 &&
163159
test_must_fail git rev-parse --verify @{u} 2>actual &&
@@ -166,8 +162,7 @@ test_expect_success '@{u} error message when not on a branch' '
166162

167163
test_expect_success 'branch@{u} error message if upstream branch not fetched' '
168164
cat >expect <<-EOF &&
169-
error: Upstream branch ${sq}refs/heads/side${sq} not stored as a remote-tracking branch
170-
fatal: Needed a single revision
165+
fatal: Upstream branch ${sq}refs/heads/side${sq} not stored as a remote-tracking branch
171166
EOF
172167
error_message bad-upstream@{u} 2>actual &&
173168
test_i18ncmp expect actual

0 commit comments

Comments
 (0)