view tests/test-pull-pull-corruption @ 7177:09ed32b79656

mq: Fix --qrefresh --short to work with --exclude and --include pmezard expects hg qref -s -X b to apply the -X to the list of files in the patch, and thus remove b from the patch. That's how it worked before f7fc5f5ecd62. That change seemed sensible, but it wasn't... mpm says (17:22:30) pmezard_: kiilerix1: do you mean that -X should be forbidden with -s ? (17:22:54) pmezard_: kiilerix1: and --include too (17:23:03) mpm: No because you should be able to say hg qref -s foo* -X foo-bar so mpm expects hg qref -s -X b * to apply the -X to the list of files in the working directory, and thus don't include b in the patch This patch tries to make both usecases work by creating a matchfn which uses the include/excludes but not the filelist.
author Mads Kiilerich <mads@kiilerich.com>
date Sun, 19 Oct 2008 16:31:24 +0200
parents 81ca1a9bd061
children
line wrap: on
line source

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