test-bookmarks-push-race.t
153 lines
| 3.8 KiB
| text/troff
|
Tads3Lexer
/ tests / test-bookmarks-push-race.t
r52529 | ============================================ | |||
Testing various race condition while pushing | ||||
============================================ | ||||
$ cat << EOF >> $HGRCPATH | ||||
> [command-templates] | ||||
> log={rev}:{node|short} {desc|firstline} {bookmarks} | ||||
> [ui] | ||||
> timeout = 20 | ||||
> [phases] | ||||
> publish=False | ||||
> EOF | ||||
Initial Setup | ||||
============= | ||||
$ hg init dst | ||||
$ echo a > dst/a-file | ||||
$ hg --cwd dst add a-file | ||||
$ hg --cwd dst commit -m root | ||||
$ hg --cwd dst bookmark my-book | ||||
$ hg --cwd dst bookmarks | ||||
* my-book 0:a64e49638499 | ||||
$ hg --cwd dst log -G | ||||
@ 0:a64e49638499 root my-book | ||||
$ hg clone ssh://user@dummy/dst src | ||||
requesting all changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 1 changes to 1 files | ||||
new changesets a64e49638499 (1 drafts) | ||||
updating to branch default | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ hg --cwd src update my-book | ||||
0 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(activating bookmark my-book) | ||||
$ hg --cwd src log -G | ||||
@ 0:a64e49638499 root my-book | ||||
$ echo b > src/a-file | ||||
$ hg --cwd src commit -m cA0_ | ||||
$ hg --cwd src log -G | ||||
@ 1:e89d3a6ed79b cA0_ my-book | ||||
| | ||||
o 0:a64e49638499 root | ||||
Race condition while pushing a forward moving bookmarks | ||||
======================================================= | ||||
This is currently slightly broken as we eventually don't push the bookmark. | ||||
However at least we do not delete the remote one. | ||||
$ echo c > src/a-file | ||||
$ hg --cwd src push -B my-book --config hooks.prelock="hg commit -m cA1_" | ||||
pushing to ssh://user@dummy/dst | ||||
searching for changes | ||||
remote: adding changesets | ||||
remote: adding manifests | ||||
remote: adding file changes | ||||
remote: added 1 changesets with 1 changes to 1 files | ||||
$ hg --cwd src log -G | ||||
@ 2:08d837bbfe8d cA1_ my-book | ||||
| | ||||
o 1:e89d3a6ed79b cA0_ | ||||
| | ||||
o 0:a64e49638499 root | ||||
$ hg --cwd dst log -G | ||||
o 1:e89d3a6ed79b cA0_ | ||||
| | ||||
@ 0:a64e49638499 root my-book | ||||
create a side-moving bookmark | ||||
Race condition while pushing a side moving bookmarks | ||||
======================================================= | ||||
resynchronize the repo and setup test | ||||
------------------------------------- | ||||
$ hg --cwd src push -B my-book | ||||
pushing to ssh://user@dummy/dst | ||||
searching for changes | ||||
remote: adding changesets | ||||
remote: adding manifests | ||||
remote: adding file changes | ||||
remote: added 1 changesets with 1 changes to 1 files | ||||
updating bookmark my-book | ||||
$ hg --cwd dst log -G | ||||
o 2:08d837bbfe8d cA1_ my-book | ||||
| | ||||
o 1:e89d3a6ed79b cA0_ | ||||
| | ||||
@ 0:a64e49638499 root | ||||
$ hg --cwd src up 'desc("root")' | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
(leaving bookmark my-book) | ||||
$ echo d > src/a-file | ||||
$ hg --cwd src commit -m cB0_ | ||||
created new head | ||||
$ hg --cwd src bookmark --force my-book | ||||
$ echo e > src/a-file | ||||
$ hg --cwd src log -G | ||||
@ 3:726401661fe5 cB0_ my-book | ||||
| | ||||
| o 2:08d837bbfe8d cA1_ | ||||
| | | ||||
| o 1:e89d3a6ed79b cA0_ | ||||
|/ | ||||
o 0:a64e49638499 root | ||||
Push the bookmark while a commit is being made | ||||
---------------------------------------------- | ||||
This is currently slightly broken as we eventually don't push the bookmark. | ||||
However at least we do not delete the remote one. | ||||
$ hg --cwd src push -f -r 'desc("cB0_")' -B my-book --config hooks.prelock="hg commit -m cB1_" | ||||
pushing to ssh://user@dummy/dst | ||||
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) | ||||
$ hg --cwd src log -G | ||||
@ 4:a7f9cbf631a0 cB1_ my-book | ||||
| | ||||
o 3:726401661fe5 cB0_ | ||||
| | ||||
| o 2:08d837bbfe8d cA1_ | ||||
| | | ||||
| o 1:e89d3a6ed79b cA0_ | ||||
|/ | ||||
o 0:a64e49638499 root | ||||
$ hg --cwd dst log -G | ||||
o 3:726401661fe5 cB0_ | ||||
| | ||||
| o 2:08d837bbfe8d cA1_ my-book | ||||
| | | ||||
| o 1:e89d3a6ed79b cA0_ | ||||
|/ | ||||
@ 0:a64e49638499 root | ||||