mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 16:31:02 +03:00
test: add a push race case where non-contiguous branch head are created
We check case where the raced push an update to branch default head while the racing push update that same head but through another named branch.
This commit is contained in:
parent
729522bea7
commit
f372990b3a
@ -895,3 +895,180 @@ Check the result of the push
|
||||
|/
|
||||
@ 842e2fac6304 C-ROOT (default)
|
||||
|
||||
|
||||
racing commit push a new head behind another named branch
|
||||
---------------------------------------------------------
|
||||
|
||||
non-continuous branch are valid case, we tests for them.
|
||||
|
||||
# b (branch default)
|
||||
# |
|
||||
# o (branch foo)
|
||||
# |
|
||||
# | a (raced, branch default)
|
||||
# |/
|
||||
# * (branch foo)
|
||||
# |
|
||||
# * (branch default)
|
||||
|
||||
(resync-all + other branch)
|
||||
|
||||
$ hg -R ./server pull ./client-racy
|
||||
pulling from ./client-racy
|
||||
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)
|
||||
|
||||
(creates named branch on head)
|
||||
|
||||
$ hg -R ./server/ up 'desc("C-N")'
|
||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
$ hg -R ./server/ branch other
|
||||
marked working directory as branch other
|
||||
$ hg -R ./server/ ci -m "C-Z"
|
||||
$ hg -R ./server/ up null
|
||||
0 files updated, 0 files merged, 3 files removed, 0 files unresolved
|
||||
|
||||
(sync client)
|
||||
|
||||
$ hg -R ./client-other pull
|
||||
pulling from ssh://user@dummy/server
|
||||
searching for changes
|
||||
adding changesets
|
||||
adding manifests
|
||||
adding file changes
|
||||
added 2 changesets with 0 changes to 0 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 2 changesets with 1 changes to 1 files (+1 heads)
|
||||
(run 'hg heads .' to see heads, 'hg merge' to merge)
|
||||
|
||||
$ hg -R server graph
|
||||
o 55a6f1c01b48 C-Z (other)
|
||||
|
|
||||
o 866a66e18630 C-N (default)
|
||||
|\
|
||||
+---o 6fd3090135df C-M (default)
|
||||
| |
|
||||
| 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)
|
||||
|/
|
||||
o 842e2fac6304 C-ROOT (default)
|
||||
|
||||
|
||||
Creating changesets
|
||||
|
||||
(update default head through another named branch one)
|
||||
|
||||
$ hg -R client-other/ up 'desc("C-Z")'
|
||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
$ echo aaa >> client-other/a
|
||||
$ hg -R client-other/ commit -m "C-O"
|
||||
$ echo aaa >> client-other/a
|
||||
$ hg -R client-other/ branch --force default
|
||||
marked working directory as branch default
|
||||
$ hg -R client-other/ commit -m "C-P"
|
||||
created new head
|
||||
|
||||
(update default head)
|
||||
|
||||
$ hg -R client-racy/ up 'desc("C-Z")'
|
||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
|
||||
$ echo bbb >> client-other/a
|
||||
$ hg -R client-racy/ branch --force default
|
||||
marked working directory as branch default
|
||||
$ hg -R client-racy/ commit -m "C-Q"
|
||||
created new head
|
||||
|
||||
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 2 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 1b58ee3f79e5 C-P (default)
|
||||
|
|
||||
o d0a85b2252a9 C-O (other)
|
||||
|
|
||||
o 55a6f1c01b48 C-Z (other)
|
||||
|
|
||||
o 866a66e18630 C-N (default)
|
||||
|\
|
||||
+---o 6fd3090135df C-M (default)
|
||||
| |
|
||||
| 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)
|
||||
|/
|
||||
o 842e2fac6304 C-ROOT (default)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user