tests/test-merge6
author mpm@selenic.com
Tue, 16 Aug 2005 14:53:47 -0800
changeset 917 7f3f55903496
parent 814 0902ffece4b4
child 1933 7544700fd931
permissions -rwxr-xr-x
Fix hg clone race with writer Most read operations in hg don't need locks because we order reads and writes for consistency. Clone is an exception to this as we're copying entire file histories and could end up with more file history copied than we have commits. For now, make clone take a lock on the source repo. Non-hardlinked clone should eventually be changed to use lockless pull.

#!/bin/sh

cat <<'EOF' > merge
#!/bin/sh
echo merging for `basename $1`
EOF
chmod +x merge
HGMERGE=./merge; export HGMERGE

mkdir A1
cd A1
hg init
echo This is file foo1 > foo
echo This is file bar1 > bar
hg add foo bar
hg commit -m "commit text" -d "0 0"

cd ..
hg clone A1 B1

cd A1
rm bar
hg remove bar
hg commit -m "commit test" -d "0 0"

cd ../B1
echo This is file foo22 > foo
hg commit -m "commit test" -d "0 0"

cd ..
hg clone A1 A2
hg clone B1 B2

cd A1
hg pull ../B1
hg update -m
hg commit -m "commit test" -d "0 0"
echo bar should remain deleted.
hg manifest

cd ../B2
hg pull ../A2
hg update -m
hg commit -m "commit test" -d "0 0"
echo bar should remain deleted.
hg manifest