mirror of
https://github.com/facebook/sapling.git
synced 2024-10-10 16:57:49 +03:00
42 lines
747 B
Plaintext
42 lines
747 B
Plaintext
|
#!/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
|
||
|
|