Johan Bjork <jbjoerk@gmail.com> [Mon, 04 Mar 2013 22:34:11 +0000] rev 18824
diff: fix binary file removals in git mode.
With the previous version, a binary file removal diff generated with
Siddharth Agarwal <sid0@fb.com> [Sun, 24 Mar 2013 16:56:25 -0700] rev 18823
manifestmerge: drop redundant flags calls
Siddharth Agarwal <sid0@fb.com> [Mon, 25 Mar 2013 17:41:06 -0700] rev 18822
manifestmerge: use dicthelpers.diff and join
This patch improves manifestmerge performance significantly.
In a repository with 170,000 files, the following results were observed on a
clean working directory. Revision '.' adds one file.
hg perfmergecalculate -r .
- before: 0.41 seconds
- after: 0.13 seconds
hg perfmergecalculate -r .^
- before: 0.53 seconds
- after: 0.24 seconds
Comparing against '.' is much faster than comparing against '.^' because with
'.', the wctx and p2 manifest strings have the same identity, so comparisons
are simply pointer equality. With '.^', the strings have different identities
so we need to perform memcmps.
Any operation that uses manifestmerge benefits.
- hg update . goes from 2.04 seconds to 1.75
- hg update .^ goes from 2.52 seconds to 2.25
- hg rebase -r . -d .~6 (involves 4 merges) goes from 11.8 seconds to 10.8
Siddharth Agarwal <sid0@fb.com> [Sun, 24 Mar 2013 17:17:38 -0700] rev 18821
manifestdict: add a method to diff _flags
This will be used in an upcoming patch.