view tests/test-bundle-r @ 4492:b79cdb7f0597

patch.diff: avoid calling workingctx().manifest() Right now, to generate the manifest of the working dir, we have to perform a full walk of the working dir, which will be very slow, especially if we're interested in only a small part of it. Since we use the manifest only to find out the mode of files for git patches, manually build an execf function to do it. This should fix issue567.
author Alexis S. L. Carvalho <alexis@cecm.usp.br>
date Sun, 03 Jun 2007 14:38:52 -0300
parents c0b449154a90
children
line wrap: on
line source

#!/bin/sh

hg init test
cd test
cat >>afile <<EOF
0
EOF
hg add afile
hg commit -m "0.0" -d "1000000 0"
cat >>afile <<EOF
1
EOF
hg commit -m "0.1" -d "1000000 0"
cat >>afile <<EOF
2
EOF
hg commit -m "0.2" -d "1000000 0"
cat >>afile <<EOF
3
EOF
hg commit -m "0.3" -d "1000000 0"
hg update -C 0
cat >>afile <<EOF
1
EOF
hg commit -m "1.1" -d "1000000 0"
cat >>afile <<EOF
2
EOF
hg commit -m "1.2" -d "1000000 0"
cat >fred <<EOF
a line
EOF
cat >>afile <<EOF
3
EOF
hg add fred
hg commit -m "1.3" -d "1000000 0"
hg mv afile adifferentfile
hg commit -m "1.3m" -d "1000000 0"
hg update -C 3
hg mv afile anotherfile
hg commit -m "0.3m" -d "1000000 0"
hg debugindex .hg/store/data/afile.i
hg debugindex .hg/store/data/adifferentfile.i
hg debugindex .hg/store/data/anotherfile.i
hg debugindex .hg/store/data/fred.i
hg debugindex .hg/store/00manifest.i
hg verify
cd ..
for i in 0 1 2 3 4 5 6 7 8; do
   mkdir test-"$i"
   hg --cwd test-"$i" init
   hg -R test bundle -r "$i" test-"$i".hg test-"$i"
   cd test-"$i"
   hg unbundle ../test-"$i".hg
   hg verify
   hg tip -q
   cd ..
done
cd test-8
hg pull ../test-7
hg verify
hg rollback
cd ..

echo % should fail
hg -R test bundle --base 2 -r tip test-bundle-branch1.hg test-3
hg -R test bundle -r tip test-bundle-branch1.hg

hg -R test bundle --base 2 -r tip test-bundle-branch1.hg
hg -R test bundle --base 2 -r 7 test-bundle-branch2.hg
hg -R test bundle --base 2 test-bundle-all.hg
hg -R test bundle --base 3 -r tip test-bundle-should-fail.hg

# issue76 msg2163
hg -R test bundle --base 3 -r 3 -r 3 test-bundle-cset-3.hg

hg clone test-2 test-9
cd test-9
echo % 2
hg tip -q
hg unbundle ../test-bundle-should-fail.hg
echo % 2
hg tip -q
hg unbundle ../test-bundle-all.hg
echo % 8
hg tip -q
hg verify
hg rollback
echo % 2
hg tip -q
hg unbundle ../test-bundle-branch1.hg
echo % 4
hg tip -q
hg verify
hg rollback
hg unbundle ../test-bundle-branch2.hg
echo % 6
hg tip -q
hg verify

cd ../test
hg merge 7
hg ci -m merge -d "1000000 0"
cd ..
hg -R test bundle --base 2 test-bundle-head.hg
hg clone test-2 test-10
cd test-10
hg unbundle ../test-bundle-head.hg
echo % 9
hg tip -q
hg verify