view tests/test-merge6 @ 2474:1e32e2fe8a67

Fix cold cache diff performance cold cache diff performance has regressed in two ways. localrepo.changes has optimizations for diffing against the working dir parent that expect node1 to be None. commands.revpair() usage means that commands.dodiff() never sends node1 == None. This is fixed in localrepo.changes by checking against the dirstate parents. In the non-dirstate parents case, localrepo.changes does a loop comparing files without first sorting the file names, leading to random access across the disk.
author Chris Mason <mason@suse.com>
date Wed, 21 Jun 2006 09:28:48 -0700
parents e506c14382fd
children ad3d5b4367cb
line wrap: on
line source

#!/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 "1000000 0"

cd ..
hg clone A1 B1

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

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

cd ..
hg clone A1 A2
hg clone B1 B2

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

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