##// END OF EJS Templates
phabricator: warn if unable to amend, instead of aborting after posting...
phabricator: warn if unable to amend, instead of aborting after posting There was a divergence in behavior here between obsolete and strip based amending. I first noticed the abort when testing outside of the test harness, but then had trouble recreating it here after reverting the code changes. It turns out, strip based amend was successfully amending the public commit after it was posted! It looks like the protection is in the `commit --amend` command, not in the underlying code that it calls. I considered doing a preflight check and aborting. But the locks are only acquired at the end, if amending, and this is too large a section of code to be wrapped in a maybe-it's-held-or-not context manager for my tastes. Additionally, some people do post-push reviews, and amending is the default behavior, so they shouldn't see a misleading error message. The lack of a 'Differential Revision' entry in the commit message breaks a {phabreview} test, so it had to be partially conditionalized.

File last commit:

r39525:f1186c29 default
r41198:0101a35d default
Show More
test-pull-pull-corruption.t
75 lines | 1.7 KiB | text/troff | Tads3Lexer
/ tests / test-pull-pull-corruption.t
Matt Mackall
tests: unify test-pull-pull-corruption
r12481 Corrupt an hg repo with two pulls.
create one repo with a long history
$ hg init source1
$ cd source1
$ touch foo
$ hg add foo
$ for i in 1 2 3 4 5 6 7 8 9 10; do
> echo $i >> foo
> hg ci -m $i
> done
$ cd ..
create one repo with a shorter history
$ hg clone -r 0 source1 source2
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 495a0ec48aaf
Matt Mackall
tests: unify test-pull-pull-corruption
r12481 updating to branch default
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ cd source2
$ echo a >> foo
$ hg ci -m a
$ cd ..
create a third repo to pull both other repos into it
$ hg init corrupted
$ cd corrupted
use a hook to make the second pull start while the first one is still running
$ echo '[hooks]' >> .hg/hgrc
$ echo 'prechangegroup = sleep 5' >> .hg/hgrc
start a pull...
Mads Kiilerich
tests: remove race in test-pull-pull-corruption.t...
r16481 $ hg pull ../source1 > pull.out 2>&1 &
Matt Mackall
tests: unify test-pull-pull-corruption
r12481
... and start another pull before the first one has finished
$ sleep 1
$ hg pull ../source2 2>/dev/null
pulling from ../source2
searching for changes
adding changesets
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files (+1 heads)
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets ca3c05af513e
Matt Mackall
tests: unify test-pull-pull-corruption
r12481 (run 'hg heads' to see heads, 'hg merge' to merge)
Mads Kiilerich
tests: remove race in test-pull-pull-corruption.t...
r16481 $ cat pull.out
pulling from ../source1
requesting all changes
adding changesets
adding manifests
adding file changes
added 10 changesets with 10 changes to 1 files
Denis Laxalde
transaction-summary: show the range of new revisions upon pull/unbundle (BC)...
r34662 new changesets 495a0ec48aaf:1e7b6c812ca8
Mads Kiilerich
tests: remove race in test-pull-pull-corruption.t...
r16481 (run 'hg update' to get a working copy)
Matt Mackall
tests: unify test-pull-pull-corruption
r12481
see the result
$ wait
$ hg verify
checking changesets
checking manifests
crosschecking files in changesets and manifests
checking files
Meirambek Omyrzak
verify: make output less confusing (issue5924)...
r39525 checked 11 changesets with 11 changes to 1 files
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..