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