Mercurial > hg
diff tests/test-clone-pull-corruption.t @ 12412:2dbb9e5e3454
tests: unify test-clone-pull-corruption
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Sun, 26 Sep 2010 13:41:32 -0500 |
parents | tests/test-clone-pull-corruption@81ca1a9bd061 |
children | 7cbb81c47025 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-clone-pull-corruption.t Sun Sep 26 13:41:32 2010 -0500 @@ -0,0 +1,50 @@ +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 + $ echo '[hooks]' >> .hg/hgrc + $ echo 'pretxncommit = sleep 5; exit 1' >> .hg/hgrc + +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 + (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