[PATCH 3 of 9] test: add a push race case where the racing client create a new head
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Sun May 28 19:11:25 EDT 2017
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at octobus.net>
# Date 1495916740 -7200
# Sat May 27 22:25:40 2017 +0200
# Node ID c19b07727d33c6f15cc9a7ad612c2af50102efc5
# Parent e2339b057b7e267204b3c92e88e6cc4be0258581
# EXP-Topic pushrace
# Available At https://www.mercurial-scm.org/repo/users/marmoute/mercurial/
# hg pull https://www.mercurial-scm.org/repo/users/marmoute/mercurial/ -r c19b07727d33
test: add a push race case where the racing client create a new head
We check case where the raced client push updates an existing head while the
racing client push creates a new one.
diff --git a/tests/test-push-race.t b/tests/test-push-race.t
--- a/tests/test-push-race.t
+++ b/tests/test-push-race.t
@@ -278,3 +278,109 @@ Check the result of the push
|/
@ 842e2fac6304 C-ROOT (default)
+Pushing while someone creates a new head
+-----------------------------------------
+
+Pushing a new changeset while someone creates a new branch.
+
+# a (raced)
+# |
+# * b
+# |/
+# *
+
+(resync-all)
+
+ $ hg -R ./server pull ./client-racy
+ pulling from ./client-racy
+ searching for changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 1 changes to 1 files
+ (run 'hg update' to get a working copy)
+ $ hg -R ./client-other pull
+ pulling from ssh://user@dummy/server
+ searching for changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 1 changes to 1 files
+ (run 'hg update' to get a working copy)
+ $ hg -R ./client-racy pull
+ pulling from ssh://user@dummy/server
+ searching for changes
+ adding changesets
+ adding manifests
+ adding file changes
+ added 1 changesets with 1 changes to 1 files
+ (run 'hg update' to get a working copy)
+
+ $ hg -R server graph
+ o 59e76faf78bd C-D (default)
+ |
+ o a9149a1428e2 C-B (default)
+ |
+ | o 51c544a58128 C-C (default)
+ | |
+ | o 98217d5a1659 C-A (default)
+ |/
+ @ 842e2fac6304 C-ROOT (default)
+
+
+Creating changesets
+
+(new head)
+
+ $ hg -R client-other/ up 'desc("C-A")'
+ 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ $ echo aaa >> client-other/a
+ $ hg -R client-other/ commit -m "C-E"
+ created new head
+
+(children of existing head)
+
+ $ hg -R client-racy/ up 'desc("C-C")'
+ 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ $ echo bbb >> client-racy/a
+ $ hg -R client-racy/ commit -m "C-F"
+
+Pushing
+
+ $ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
+
+ $ waiton $TESTTMP/readyfile
+
+ $ hg -R client-other push -fr 'tip'
+ pushing to ssh://user@dummy/server
+ searching for changes
+ remote: adding changesets
+ remote: adding manifests
+ remote: adding file changes
+ remote: added 1 changesets with 1 changes to 1 files (+1 heads)
+
+ $ release $TESTTMP/watchfile
+
+Check the result of the push
+
+ $ cat ./push-log
+ pushing to ssh://user@dummy/server
+ searching for changes
+ wrote ready: $TESTTMP/readyfile
+ waiting on: $TESTTMP/watchfile
+ abort: push failed:
+ 'repository changed while pushing - please try again'
+
+ $ hg -R server graph
+ o d603e2c0cdd7 C-E (default)
+ |
+ | o 51c544a58128 C-C (default)
+ |/
+ o 98217d5a1659 C-A (default)
+ |
+ | o 59e76faf78bd C-D (default)
+ | |
+ | o a9149a1428e2 C-B (default)
+ |/
+ @ 842e2fac6304 C-ROOT (default)
+
More information about the Mercurial-devel
mailing list