test-clone-pull-corruption.t
53 lines
| 1.2 KiB
| text/troff
|
Tads3Lexer
/ tests / test-clone-pull-corruption.t
|
r12412 | Corrupt an hg repo with a pull started during an aborted commit | ||
Create two repos, so that one of them can pull from the other one. | ||||
$ hg init source | ||||
$ cd source | ||||
$ touch foo | ||||
$ hg add foo | ||||
$ hg ci -m 'add foo' | ||||
$ hg clone . ../corrupted | ||||
updating to branch default | ||||
1 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ echo >> foo | ||||
$ hg ci -m 'change foo' | ||||
Add a hook to wait 5 seconds and then abort the commit | ||||
$ cd ../corrupted | ||||
|
r16962 | $ echo "[hooks]" >> .hg/hgrc | ||
|
r24838 | $ echo 'pretxncommit = sh -c "sleep 5; exit 1"' >> .hg/hgrc | ||
|
r12412 | |||
start a commit... | ||||
$ touch bar | ||||
$ hg add bar | ||||
$ hg ci -m 'add bar' & | ||||
... and start a pull while the commit is still running | ||||
$ sleep 1 | ||||
$ hg pull ../source 2>/dev/null | ||||
pulling from ../source | ||||
transaction abort! | ||||
rollback completed | ||||
abort: pretxncommit hook exited with status 1 | ||||
searching for changes | ||||
adding changesets | ||||
adding manifests | ||||
adding file changes | ||||
added 1 changesets with 1 changes to 1 files | ||||
|
r34662 | new changesets 52998019f625 | ||
|
r12412 | (run 'hg update' to get a working copy) | ||
see what happened | ||||
$ wait | ||||
$ hg verify | ||||
checking changesets | ||||
checking manifests | ||||
crosschecking files in changesets and manifests | ||||
checking files | ||||
1 files, 2 changesets, 2 total revisions | ||||
|
r16913 | |||
$ cd .. | ||||