##// END OF EJS Templates
scmutil: make shortest() respect disambiguation revset...
scmutil: make shortest() respect disambiguation revset The previous patch would let you use a shorter prefix if the prefix is unique within a configured revset. However, that's not very useful if there's no simple way of knowing what that shorter prefix is. This patch adapts the shortest() template function to use the shorter prefixes for nodes in the configured revset. This is currently extremely slow, because it calculates the revset for each call to shortest(). To make this faster, the next patch will start caching the revset instance. Ideally we'd cache a prefix tree instance instead. Differential Revision: https://phab.mercurial-scm.org/D4038

File last commit:

r34662:eb586ed5 default
r38879:6f7c9527 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
1 files, 11 changesets, 11 total revisions
Mads Kiilerich
tests: add missing trailing 'cd ..'...
r16913
$ cd ..