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

[PATCH v2 43/48] remote-hg: add check_push() helper

From
Felipe Contreras <felipe.contreras@gmail.com>
Date
May 25, 2013, 02:29 UTC
Message-ID
<1369449004-17981-44-git-send-email-felipe.contreras@gmail.com>
In-Reply-To
<1369449004-17981-1-git-send-email-felipe.contreras@gmail.com>
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 contrib/remote-helpers/test-hg.sh | 66 +++++++++++++++++++++++++++++----------
 1 file changed, 49 insertions(+), 17 deletions(-)
diff --git a/contrib/remote-helpers/test-hg.sh b/contrib/remote-helpers/test-hg.sh
index f594584..aeab48a 100755
--- a/contrib/remote-helpers/test-hg.sh
+++ b/contrib/remote-helpers/test-hg.sh
@@ -48,6 +48,38 @@ check_bookmark () {
 	fi
 }
 
+check_push () {
+	local expected_ret=$1 ret=0 ref_ret=0 IFS=':'
+
+	shift
+	git push origin "$@" 2> error
+	ret=$?
+	cat error
+
+	while read branch kind
+	do
+		case "$kind" in
+		'new')
+			grep "^ \* \[new branch\] *${branch} -> ${branch}$" error || ref_ret=1
+			;;
+		'non-fast-forward')
+			grep "^ ! \[rejected\] *${branch} -> ${branch} (non-fast-forward)$" error || ref_ret=1
+			;;
+		'')
+			grep "^   [a-f0-9]*\.\.[a-f0-9]* *${branch} -> ${branch}$" error || ref_ret=1
+			;;
+		esac
+		let 'ref_ret' && echo "match for '$branch' failed" && break
+	done
+
+	if let 'expected_ret != ret || ref_ret'
+	then
+		return 1
+	fi
+
+	return 0
+}
+
 setup () {
 	(
 	echo "[ui]"
@@ -344,8 +376,9 @@ test_expect_success 'remote push diverged' '
 	cd gitrepo &&
 	echo diverge > content &&
 	git commit -a -m diverged &&
-	test_expect_code 1 git push 2> error &&
-	grep "^ ! \[rejected\] *master -> master (non-fast-forward)$" error
+	check_push 1 <<-EOF
+	master:non-fast-forward
+	EOF
 	) &&
 
 	check_branch hgrepo default bump
@@ -373,8 +406,9 @@ test_expect_success 'remote update bookmark diverge' '
 	git checkout --quiet diverge &&
 	echo diverge > content &&
 	git commit -a -m diverge &&
-	test_expect_code 1 git push 2> error &&
-	grep "^ ! \[rejected\] *diverge -> diverge (non-fast-forward)$" error
+	check_push 1 <<-EOF
+	diverge:non-fast-forward
+	EOF
 	) &&
 
 	check_bookmark hgrepo diverge "bump bookmark"
@@ -468,19 +502,17 @@ test_expect_success 'remote big push' '
 
 	(
 	cd gitrepo &&
-	test_expect_code 1 git push origin master \
-		good_bmark bad_bmark1 bad_bmark2 new_bmark \
-		branches/good_branch branches/bad_branch \
-		branches/new_branch 2> error &&
-
-	grep "^   [a-f0-9]*\.\.[a-f0-9]* *master -> master$" error &&
-	grep "^   [a-f0-9]*\.\.[a-f0-9]* *good_bmark -> good_bmark$" error &&
-	grep "^ \* \[new branch\] *new_bmark -> new_bmark$" error &&
-	grep "^ ! \[rejected\] *bad_bmark2 -> bad_bmark2 (non-fast-forward)$" error &&
-	grep "^ ! \[rejected\] *bad_bmark1 -> bad_bmark1 (non-fast-forward)$" error &&
-	grep "^   [a-f0-9]*\.\.[a-f0-9]* *branches/good_branch -> branches/good_branch$" error &&
-	grep "^ ! \[rejected\] *branches/bad_branch -> branches/bad_branch (non-fast-forward)$" error &&
-	grep "^ \* \[new branch\] *branches/new_branch -> branches/new_branch$" error
+
+	check_push 1 --all <<-EOF
+	master
+	good_bmark
+	branches/good_branch
+	new_bmark:new
+	branches/new_branch:new
+	bad_bmark1:non-fast-forward
+	bad_bmark2:non-fast-forward
+	branches/bad_branch:non-fast-forward
+	EOF
 	) &&
 
 	check_branch hgrepo default one &&
-- 
1.8.3.rc3.312.g47657de
Previous: Felipe ContrerasNext: Felipe Contreras
Message 46 of 51 in “remote-hg: fixes for next”
  1. 00/48 remote-hg: fixes for nextFelipe Contreras, May 25, 2013
  2. 01/48 remote-hg: test: be a little more quietFelipe Contreras, May 25, 2013
  3. 02/48 remote-hg: trivial reorganizationFelipe Contreras, May 25, 2013
  4. 03/48 remote-helpers: test: cleanup white-spacesFelipe Contreras, May 25, 2013
  5. 04/48 remote-helpers: test: cleanup styleFelipe Contreras, May 25, 2013
  6. 05/48 remote-helpers: tests: general improvementsFelipe Contreras, May 25, 2013
  7. 06/48 remote-helpers: test: simplify remote URLsFelipe Contreras, May 25, 2013
  8. 07/48 remote-hg: test: simplify previous branch checkoutFelipe Contreras, May 25, 2013
  9. 08/48 remote-hg: load all extensionsFelipe Contreras, May 25, 2013
  10. 09/48 remote-hg: use a shared repository storeFelipe Contreras, May 25, 2013
  11. 10/48 remote-hg: shuffle some codeFelipe Contreras, May 25, 2013
  12. 11/48 remote-hg: improve node traversingFelipe Contreras, May 25, 2013
  13. 12/48 remote-hg: add version checks to the marksFelipe Contreras, May 25, 2013
  14. 13/48 remote-hg: switch from revisions to SHA-1 noteidsFelipe Contreras, May 25, 2013
  15. 14/48 remote-hg: upgrade version 1 marksFelipe Contreras, May 25, 2013
  16. 15/48 remote-hg: ensure remote rebasing worksFelipe Contreras, May 25, 2013
  17. 16/48 remote-hg: trivial cleanupsFelipe Contreras, May 25, 2013
  18. 17/48 remote-hg: improve progress calculationFelipe Contreras, May 25, 2013
  19. 18/48 remote-hg: always point HEAD to masterFelipe Contreras, May 25, 2013
  20. 19/48 remote-hg: add tests for 'master' bookmarkFelipe Contreras, May 25, 2013
  21. 20/48 remote-bzr: simplify test checksFelipe Contreras, May 25, 2013
  22. 21/48 remote-hg: add check_bookmark() test helperFelipe Contreras, May 25, 2013
  23. 22/48 remote-hg: update bookmarks when using a remoteFelipe Contreras, May 25, 2013
  24. 23/48 remote-hg: add remote testsFelipe Contreras, May 25, 2013
  25. 24/48 remote-hg: add test to push new bookmarkFelipe Contreras, May 25, 2013
  26. 25/48 remote-hg: add test for diverged pushFelipe Contreras, May 25, 2013
  27. Eric SunshineMay 25, 2013
  28. 26/48 remote-hg: add test for bookmark divergeFelipe Contreras, May 25, 2013
  29. 27/48 remote-hg: add test for new bookmark specialFelipe Contreras, May 25, 2013
  30. Eric SunshineMay 25, 2013
  31. 28/48 remote-hg: add test for big pushFelipe Contreras, May 25, 2013
  32. 29/48 remote-hg: add test for failed double pushFelipe Contreras, May 25, 2013
  33. 30/48 remote-hg: reorganize bookmark handlingFelipe Contreras, May 25, 2013
  34. 31/48 remote-hg: force remote bookmark push selectivelyFelipe Contreras, May 25, 2013
  35. 32/48 remote-hg: only update necessary revisionsFelipe Contreras, May 25, 2013
  36. 33/48 remote-hg: implement custom push()Felipe Contreras, May 25, 2013
  37. 34/48 remote-hg: implement custom checkheads()Felipe Contreras, May 25, 2013
  38. 35/48 remote-hg: pass around revision refsFelipe Contreras, May 25, 2013
  39. 36/48 remote-hg: check diverged bookmarksFelipe Contreras, May 25, 2013
  40. 37/48 remote-hg: simplify branch_tip()Felipe Contreras, May 25, 2013
  41. 38/48 remote-hg: improve branch listingFelipe Contreras, May 25, 2013
  42. 39/48 remote-hg: use remote 'default' not local oneFelipe Contreras, May 25, 2013
  43. 40/48 remote-hg: improve lightweight tag authorFelipe Contreras, May 25, 2013
  44. 41/48 remote-hg: remove files before modificationsFelipe Contreras, May 25, 2013
  45. 42/48 remote-hg: add setup_big_push() helperFelipe Contreras, May 25, 2013
  46. 43/48 remote-hg: add check_push() helperFelipe Contreras, May 25, 2013
  47. 44/48 remote-helpers: improve marks usageFelipe Contreras, May 25, 2013
  48. 45/48 remote-hg: trivial cleanupFelipe Contreras, May 25, 2013
  49. 46/48 remote-hg: check if a fetch is neededFelipe Contreras, May 25, 2013
  50. 47/48 remote-hg: add support for --dry-runFelipe Contreras, May 25, 2013
  51. 48/48 remote-hg: add support for --forceFelipe Contreras, May 25, 2013

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.