From: Alex Riesen <raa.lkml@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org, Jeff King <peff@peff.net>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>
Subject: [PATCH] Add test that checks diverse aspects of updating remote and tracking branches
Date: Wed, 14 Nov 2007 23:49:27 +0100 [thread overview]
Message-ID: <20071114224926.GF3973@steel.home> (raw)
In-Reply-To: <7vbq9wfqb0.fsf@gitster.siamese.dyndns.org>
Because we haven't settled on what the exit status from
"git push" command itself should be in such a partial
failure case, do not check the exit status from it for
now.
Signed-off-by: Alex Riesen <raa.lkml@gmail.com>
---
Junio C Hamano, Wed, Nov 14, 2007 22:52:19 +0100:
> Alex Riesen <raa.lkml@gmail.com> writes:
>
> > Ignore exit code of git push in t5404, as it is not relevant for the
> > test: it already checks whether the references updated correctly.
>
> I think the Subject: goes a lot better with a description like this:
>
> Add test that checks the case where X does Y and make
> sure Z happens.
Add test that checks diverse aspects of updating remote and tracking
branches.
> Because we haven't settled on what the exit status from
> "git push" command itself should be in such a partial
> failure case, do not check the exit status from it for
> now.
This I'll leave as is.
> > + git branch b3 &&
>
> So it makes another ref "b3" point at the initial commit,...
Right
> > + b3=$(git rev-parse origin/b3) &&
>
> ... then records what was cloned,...
Precisely
> > + test "$(git rev-parse origin/b3)" = "$b3" &&
>
> ... and checks that untouched "b3" stays the same (iow, tests
> up-to-date case).
Yep.
> > +
> > +test_expect_success 'delete remote branch' '
> > + git push origin :refs/heads/b3
> > + {
> > + git rev-parse origin/b3
> > + test $? != 0 || \
> > + say "Hmm... Maybe tracking ref should be deleted?"
> > + } &&
>
> Ah, you meant that tracking should be deleted so this should be
> fixed in the code but the test is disabled for now. Let's be a
> bit more explicit about such a temporary disabled test, like
> this:
>
> git push origin :refs/heads/b3
>
> # The remote-tracking branch origin/b3 should be deleted;
> # we need to update the code and enable this test.
> : git rev-parse --verify origin/b3 &&
Nice, will take this. Except we have to check for absence of the
tracking branch. git-rev-parse must fail.
t/t5404-tracking-branches.sh | 64 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 64 insertions(+), 0 deletions(-)
create mode 100755 t/t5404-tracking-branches.sh
diff --git a/t/t5404-tracking-branches.sh b/t/t5404-tracking-branches.sh
new file mode 100755
index 0000000..d861a14
--- /dev/null
+++ b/t/t5404-tracking-branches.sh
@@ -0,0 +1,64 @@
+#!/bin/sh
+
+test_description='tracking branch update checks for git push'
+
+. ./test-lib.sh
+
+test_expect_success 'setup' '
+ echo 1 >file &&
+ git add file &&
+ git commit -m 1 &&
+ git branch b1 &&
+ git branch b2 &&
+ git branch b3 &&
+ git clone . aa &&
+ git checkout b1 &&
+ echo b1 >>file &&
+ git commit -a -m b1 &&
+ git checkout b2 &&
+ echo b2 >>file &&
+ git commit -a -m b2
+'
+
+start_dir="$(pwd)"
+
+test_expect_success 'check tracking branches updated correctly after push' '
+ cd aa &&
+ b1=$(git rev-parse origin/b1) &&
+ b2=$(git rev-parse origin/b2) &&
+ b3=$(git rev-parse origin/b3) &&
+ git checkout -b b1 origin/b1 &&
+ echo aa-b1 >>file &&
+ git commit -a -m aa-b1 &&
+ git checkout -b b2 origin/b2 &&
+ echo aa-b2 >>file &&
+ git commit -a -m aa-b2 &&
+ git checkout master &&
+ echo aa-master >>file &&
+ git commit -a -m aa-master &&
+ {
+ git push
+ test "$(git rev-parse origin/b1)" = "$b1" &&
+ test "$(git rev-parse origin/b2)" = "$b2" &&
+ test "$(git rev-parse origin/b3)" = "$b3" &&
+ test "$(git rev-parse origin/master)" = \
+ "$(git rev-parse master)"
+ }
+'
+
+test_expect_success 'delete remote branch' '
+ git push origin :refs/heads/b3
+ {
+ # The remote-tracking branch origin/b3 should be deleted;
+ # we need to update the code and enable this test.
+ : git rev-parse --verify origin/b3
+ : test $? != 0
+ } &&
+ cd "$start_dir" &&
+ {
+ git rev-parse refs/heads/b3
+ test $? != 0
+ }
+'
+
+test_done
--
1.5.3.5.692.ge1737
next prev parent reply other threads:[~2007-11-14 22:50 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-12 21:38 [PATCH] Add a test checking if send-pack updated local tracking branches correctly Alex Riesen
2007-11-12 21:39 ` [PATCH] Update the tracking references only if they were succesfully updated on remote Alex Riesen
2007-11-13 7:52 ` Jeff King
2007-11-13 19:47 ` Alex Riesen
2007-11-13 19:49 ` [PATCH] Add a test for deleting remote branches Alex Riesen
2007-11-13 23:02 ` [PATCH] Improved and extended t5404 Alex Riesen
2007-11-13 23:10 ` Jeff King
2007-11-15 4:26 ` Jeff King
2007-11-15 20:46 ` [PATCH] Add test that checks diverse aspects of updating remote and tracking branches Alex Riesen
2007-11-14 0:02 ` [PATCH] Improved and extended t5404 Junio C Hamano
2007-11-14 7:19 ` Alex Riesen
2007-11-14 8:47 ` Junio C Hamano
2007-11-14 17:10 ` Johannes Schindelin
2007-11-14 19:45 ` Alex Riesen
2007-11-14 20:34 ` Alex Riesen
2007-11-14 22:01 ` Johannes Schindelin
2007-11-15 4:18 ` Jeff King
2007-11-15 4:35 ` Jeff King
2007-11-15 5:55 ` Junio C Hamano
2007-11-14 21:52 ` Junio C Hamano
2007-11-14 22:49 ` Alex Riesen [this message]
2007-11-14 21:52 ` Junio C Hamano
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
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20071114224926.GF3973@steel.home \
--to=raa.lkml@gmail.com \
--cc=Johannes.Schindelin@gmx.de \
--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.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).