mirror of
https://github.com/facebook/sapling.git
synced 2024-10-09 16:31:02 +03:00
5b2af56e00
(submitted by Alexis S. L. Carvalho <alexis@cecm.usp.br>)
42 lines
747 B
Bash
Executable File
42 lines
747 B
Bash
Executable File
#!/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
|
|
|