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

[PATCH] Add test that checks diverse aspects of updating remote and tracking branches

From
Alex Riesen <raa.lkml@gmail.com>
Date
Nov 14, 2007, 22:49 UTC
Message-ID
<20071114224926.GF3973@steel.home>
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:
Show 9 quoted lines
> 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.
Show 19 quoted lines
> > +
> > +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
Previous: Junio C HamanoNext: Junio C Hamano
Message 21 of 22 in “Add a test checking if send-pack updated local tracking branches correctly”
  1. Add a test checking if send-pack updated local tracking branches correctlyAlex Riesen, Nov 12, 2007
  2. Update the tracking references only if they were succesfully updated on remoteAlex Riesen, Nov 12, 2007
  3. Jeff KingNov 13, 2007
  4. Alex RiesenNov 13, 2007
  5. Add a test for deleting remote branchesAlex Riesen, Nov 13, 2007
  6. Improved and extended t5404Alex Riesen, Nov 13, 2007
  7. Jeff KingNov 13, 2007
  8. Jeff KingNov 15, 2007
  9. Add test that checks diverse aspects of updating remote and tracking branchesAlex Riesen, Nov 15, 2007
  10. Junio C HamanoNov 14, 2007
  11. Alex RiesenNov 14, 2007
  12. Junio C HamanoNov 14, 2007
  13. Johannes SchindelinNov 14, 2007
  14. Alex RiesenNov 14, 2007
  15. Alex RiesenNov 14, 2007
  16. Johannes SchindelinNov 14, 2007
  17. Jeff KingNov 15, 2007
  18. Jeff KingNov 15, 2007
  19. Junio C HamanoNov 15, 2007
  20. Junio C HamanoNov 14, 2007
  21. Add test that checks diverse aspects of updating remote and tracking branchesAlex Riesen, Nov 14, 2007
  22. Junio C HamanoNov 14, 2007

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.