view tests/test-rawcommit1 @ 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 7544700fd931
children 9fe62e2db71d
line wrap: on
line source

#!/bin/sh
hg --debug init
echo this is a1 > a
hg add a
hg commit -m0 -d "1000000 0"
echo this is b1 > b
hg add b
hg commit -m1 -d "1000000 0"
hg manifest 1
echo this is c1 > c
hg rawcommit -p 1 -d "1000000 0" -m2 c
hg manifest 2
hg parents
rm b
hg rawcommit -p 2 -d "1000000 0" -m3 b
hg manifest 3
hg parents
echo this is a22 > a
hg rawcommit -p 3 -d "1000000 0" -m4 a
hg manifest 4
hg parents
echo this is c22 > c
hg rawcommit -p 1 -d "1000000 0" -m5 c
hg manifest 5
hg parents
# merge, but no files changed
hg rawcommit -p 4 -p 5 -d "1000000 0" -m6
hg manifest 6
hg parents
# no changes what-so-ever
hg rawcommit -p 6 -d "1000000 0" -m7
hg manifest 7
hg parents