Extra files in changelog "changed files" and bundles
Mads Kiilerich
mads at kiilerich.com
Wed Nov 21 20:36:27 UTC 2018
Hi
I see some odd and potentially related behaviour:
The files list in changelog entries for merges sometimes contain files
that didn't change, but where the manifest use the same filelog entry as
one of the parents.
It seems to often be related to merge of file moves.
Also, sometimes there are different filelog entries, but
debugrevlogindex shows rename entries (p1=null) with length 0 and where
debugdata confirms that the content is the same as their p2.
And because of these extra "changedfiles" entries, bundles sometimes
contains too many files. Linkrev is used for pruning, but is too fragile
to handle it correctly. (I have a PoC for pruning all filelog entries
that are reused from the parents "common" and outside the bundled set.)
(It also doesn't seem to use an optimal delta parent when bundling -
that could perhaps mitigate it.)
Sorry for the vague description. I have not been fully able to reproduce
the problems - perhaps because bugs have been fixed. Are you aware of
changes/fixes that can explain this? Or hints about where to look or
related problems?
/Mads
More information about the Mercurial-devel
mailing list