From: "Zbigniew Jędrzejewski-Szmek" <zbyszek@in.waw.pl>
To: git@vger.kernel.org, gitster@pobox.com
Cc: peff@peff.net, Matthieu.Moy@grenoble-inp.fr,
"Zbigniew Jędrzejewski-Szmek" <zbyszek@in.waw.pl>
Subject: [PATCH v2 1/5] t1507: add tests to document @{upstream} behaviour
Date: Sat, 14 Apr 2012 09:54:31 +0200 [thread overview]
Message-ID: <1334390075-25467-2-git-send-email-zbyszek@in.waw.pl> (raw)
In-Reply-To: <1334390075-25467-1-git-send-email-zbyszek@in.waw.pl>
In preparation for future changes, add tests which show error messages
with @{upstream} in various conditions:
- test branch@{u} with . as remote
- check error message for branch@{u} on a branch with
* no upstream,
* on a branch with a configured upstream which doesn't have a
remote-tracking branch
- check error message for branch@{u} when branch 'branch' does not
exist
- check error message for @{u} without the branch name
Right now the messages are very similar, but various cases can and
will be distinguished.
Note: test_i18ncmp is not used, because currently error output is not
internationalized. test_cmp will be switched to test_i18ncmp in a later
patch, when error messages are internationalized.
Signed-off-by: Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
---
t/t1507-rev-parse-upstream.sh | 81 +++++++++++++++++++++++++++++++++++++++--
1 file changed, 78 insertions(+), 3 deletions(-)
diff --git a/t/t1507-rev-parse-upstream.sh b/t/t1507-rev-parse-upstream.sh
index a455551..c4981ba 100755
--- a/t/t1507-rev-parse-upstream.sh
+++ b/t/t1507-rev-parse-upstream.sh
@@ -15,10 +15,18 @@ test_expect_success 'setup' '
test_commit 3 &&
(cd clone &&
test_commit 4 &&
- git branch --track my-side origin/side)
-
+ git branch --track my-side origin/side &&
+ git branch --track local-master master &&
+ git remote add -t master master-only .. &&
+ git fetch master-only &&
+ git branch bad-upstream &&
+ git config branch.bad-upstream.remote master-only &&
+ git config branch.bad-upstream.merge refs/heads/side
+ )
'
+sq="'"
+
full_name () {
(cd clone &&
git rev-parse --symbolic-full-name "$@")
@@ -29,6 +37,11 @@ commit_subject () {
git show -s --pretty=format:%s "$@")
}
+error_message () {
+ (cd clone &&
+ test_must_fail git rev-parse --verify "$@")
+}
+
test_expect_success '@{upstream} resolves to correct full name' '
test refs/remotes/origin/master = "$(full_name @{upstream})"
'
@@ -78,7 +91,6 @@ test_expect_success 'checkout -b new my-side@{u} forks from the same' '
test_expect_success 'merge my-side@{u} records the correct name' '
(
- sq="'\''" &&
cd clone || exit
git checkout master || exit
git branch -D new ;# can fail but is ok
@@ -107,6 +119,69 @@ test_expect_success 'checkout other@{u}' '
test_cmp expect actual
'
+test_expect_success 'branch@{u} works when tracking a local branch' '
+ test refs/heads/master = "$(full_name local-master@{u})"
+'
+
+test_expect_success 'branch@{u} error message when no upstream' '
+ cat >expect <<-EOF &&
+ error: No upstream branch found for ${sq}non-tracking${sq}
+ fatal: Needed a single revision
+ EOF
+ error_message non-tracking@{u} 2>actual &&
+ test_cmp expect actual
+'
+
+test_expect_success '@{u} error message when no upstream' '
+ cat >expect <<-EOF &&
+ error: No upstream branch found for ${sq}${sq}
+ fatal: Needed a single revision
+ EOF
+ test_must_fail git rev-parse --verify @{u} 2>actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'branch@{u} error message with misspelt branch' '
+ cat >expect <<-EOF &&
+ error: No upstream branch found for ${sq}no-such-branch${sq}
+ fatal: Needed a single revision
+ EOF
+ error_message no-such-branch@{u} 2>actual &&
+ test_cmp expect actual
+'
+
+test_expect_success '@{u} error message when not on a branch' '
+ cat >expect <<-EOF &&
+ error: No upstream branch found for ${sq}${sq}
+ fatal: Needed a single revision
+ EOF
+ git checkout HEAD^0 &&
+ test_must_fail git rev-parse --verify @{u} 2>actual &&
+ test_cmp expect actual
+'
+
+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}
+ fatal: Needed a single revision
+ EOF
+ error_message bad-upstream@{u} 2>actual &&
+ test_cmp expect actual
+'
+
+test_expect_success 'pull works when tracking a local branch' '
+(
+ cd clone &&
+ git checkout local-master &&
+ git pull
+)
+'
+
+# makes sense if the previous one succeeded
+test_expect_success '@{u} works when tracking a local branch' '
+ test refs/heads/master = "$(full_name @{u})"
+'
+
cat >expect <<EOF
commit 8f489d01d0cc65c3b0f09504ec50b5ed02a70bd5
Reflog: master@{0} (C O Mitter <committer@example.com>)
--
1.7.10.226.gfe575
next prev parent reply other threads:[~2012-04-14 7:56 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-04-11 16:17 [PATCH 0/5] provide better error messages for @{upstream} Zbigniew Jędrzejewski-Szmek
2012-04-11 16:17 ` [PATCH 1/5] t1507: add additional tests " Zbigniew Jędrzejewski-Szmek
2012-04-11 17:52 ` Junio C Hamano
2012-04-11 17:57 ` Junio C Hamano
2012-04-11 21:51 ` Zbigniew Jędrzejewski-Szmek
2012-04-11 17:59 ` Matthieu Moy
2012-04-11 22:05 ` Zbigniew Jędrzejewski-Szmek
2012-04-11 16:17 ` [PATCH 2/5] Provide branch name in error message when using @{u} Zbigniew Jędrzejewski-Szmek
2012-04-11 18:00 ` Junio C Hamano
2012-04-11 22:13 ` Zbigniew Jędrzejewski-Szmek
2012-04-11 16:17 ` [PATCH 3/5] Provide better message for barnhc_wiht_tpyo@{u} Zbigniew Jędrzejewski-Szmek
2012-04-11 16:17 ` [PATCH 4/5] Be more specific if upstream branch is not fetched Zbigniew Jędrzejewski-Szmek
2012-04-12 5:30 ` Jeff King
2012-04-12 9:15 ` Zbigniew Jędrzejewski-Szmek
2012-04-12 15:15 ` Junio C Hamano
2012-04-12 20:40 ` Jeff King
2012-04-14 7:54 ` [PATCH v2 0/5] provide better error messages for @{upstream} Zbigniew Jędrzejewski-Szmek
2012-04-14 7:54 ` Zbigniew Jędrzejewski-Szmek [this message]
2012-04-14 7:54 ` [PATCH v2 2/5] Provide branch name in error message when using @{u} Zbigniew Jędrzejewski-Szmek
2012-04-14 7:54 ` [PATCH v2 3/5] Provide better message for barnhc_wiht_tpyo@{u} Zbigniew Jędrzejewski-Szmek
2012-04-14 7:54 ` [PATCH v2 4/5] Be more specific if upstream branch is not tracked Zbigniew Jędrzejewski-Szmek
2012-04-14 7:54 ` [PATCH v2 5/5] i18n: mark @{upstream} error messages for translation Zbigniew Jędrzejewski-Szmek
2012-04-14 8:09 ` [PATCH v2 0/5] provide better error messages for @{upstream} Jeff King
2012-04-11 16:17 ` [PATCH 5/5] i18n: mark @{upstream} error messages for translation Zbigniew Jędrzejewski-Szmek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1334390075-25467-2-git-send-email-zbyszek@in.waw.pl \
--to=zbyszek@in.waw.pl \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.