Mercurial > hg-stable
changeset 32655:090a6fe6e563
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.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sat, 27 May 2017 22:25:40 +0200 |
parents | 63afbc74a856 |
children | b01bfa5abbfe |
files | tests/test-push-race.t |
diffstat | 1 files changed, 106 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/tests/test-push-race.t Sat May 27 22:25:20 2017 +0200 +++ b/tests/test-push-race.t Sat May 27 22:25:40 2017 +0200 @@ -278,3 +278,109 @@ |/ @ 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) +