tests/test-pull-pull-corruption
author Thomas Arendsen Hein <thomas@intevation.de>
Tue, 02 May 2006 18:44:02 +0200
changeset 2175 b2ae81a7df29
parent 1785 81ca1a9bd061
permissions -rwxr-xr-x
Make hg update more verbose by default (issue12) (including small changes to revert and backout to not show these stats with the exception of backout --merge) Show update stats (unless -q), e.g.: K files updated, L files merged, M files removed, N files unresolved Inform the user what to do after a merge: (branch merge, don't forget to commit) Inform the user what to do if a branch merge failed: There are unresolved merges, you can redo the full merge using: hg update -C X hg merge Y Inform the user what to do if a working directory merge failed: There are unresolved merges with locally modified files.

#!/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