test: add a push race case where the raced push touch multiple heads

We check case where the raced push update all heads while the racing push
update one of them.
This commit is contained in:
Pierre-Yves David 2017-05-27 22:27:09 +02:00
parent 2478014ca3
commit 729522bea7

View File

@ -758,3 +758,140 @@ Check the result of the push
|/
@ 842e2fac6304 C-ROOT (default)
pushing raced push touch multiple heads
---------------------------------------
There are multiple heads, the raced push touch all of them
# b
# | a (raced)
# |/|
# * *
# |/
# *
(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 (+1 heads)
(run 'hg heads .' to see heads, 'hg merge' to merge)
$ 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 (+1 heads)
(run 'hg heads .' to see heads, 'hg merge' to merge)
$ 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 0 changes to 0 files
(run 'hg update' to get a working copy)
$ hg -R server graph
o cac2cead0ff0 C-L (default)
|
| o be705100c623 C-K (default)
|/|
| o d603e2c0cdd7 C-E (default)
| |
o | 59e76faf78bd C-D (default)
| |
| | o 89420bf00fae C-J (default)
| | |
| | | o b35ed749f288 C-I (my-second-test-branch)
| | |/
| | o 75d69cba5402 C-G (default)
| | |
| | | o 833be552cfe6 C-H (my-first-test-branch)
| | |/
| | o d9e379a8c432 C-F (default)
| | |
| | o 51c544a58128 C-C (default)
| |/
o | a9149a1428e2 C-B (default)
| |
| o 98217d5a1659 C-A (default)
|/
@ 842e2fac6304 C-ROOT (default)
Creating changesets
(update existing head)
$ echo aaa >> client-other/a
$ hg -R client-other/ commit -m "C-M"
(merge heads)
$ hg -R client-racy/ merge 'desc("C-K")'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg -R client-racy/ commit -m "C-N"
Pushing
$ hg -R client-racy push -r 'tip' > ./push-log 2>&1 &
$ waiton $TESTTMP/readyfile
$ hg -R client-other push -fr 'tip' --new-branch
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
$ 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 6fd3090135df C-M (default)
|
o be705100c623 C-K (default)
|\
| o d603e2c0cdd7 C-E (default)
| |
+---o cac2cead0ff0 C-L (default)
| |
o | 59e76faf78bd C-D (default)
| |
| | o 89420bf00fae C-J (default)
| | |
| | | o b35ed749f288 C-I (my-second-test-branch)
| | |/
| | o 75d69cba5402 C-G (default)
| | |
| | | o 833be552cfe6 C-H (my-first-test-branch)
| | |/
| | o d9e379a8c432 C-F (default)
| | |
| | o 51c544a58128 C-C (default)
| |/
o | a9149a1428e2 C-B (default)
| |
| o 98217d5a1659 C-A (default)
|/
@ 842e2fac6304 C-ROOT (default)