test-pull-pull-corruption
41 lines
| 747 B
| text/plain
|
TextLexer
/ tests / test-pull-pull-corruption
|
r1785 | #!/bin/sh | ||
# | ||||
# 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 | ||||
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... | ||||
hg pull ../source1 & | ||||
# ... and start another pull before the first one has finished | ||||
sleep 1 | ||||
hg pull ../source2 2>/dev/null | ||||
# see the result | ||||
wait | ||||
hg verify | ||||