4d504e541d3d1a139f8ebbf8c405291140fd1853 introduced an optimization where in
some cases we first diff ancestor and second parent, get the list of files
changed between them and then only diff for these files between first parent and
However as the commit message mentions, this optimization is only helpful when
rebasing very old commits and using treemanifest. On flat manifests, this
optimization rather adds a bit of overhead.
This makes optimization not much useful on flat manifests and can be disabled.
Now, while working on solving criss-cross merge issues where we want to create
new filenode for some files in initial merges, this optimization was causing
issues. Since it's filters file for which diff needs to be performed, the files
we are concerned with gets filters out and we don't get to store anything
related to those files.
Hence, want to disabling the optimization for flat manifests.
The tests changes are result of fact that we diff more files now in m1-vs-m2
Small note: all these criss cross and new filenode thing I am talking about will
be behind a config flag. So nothing invasive yet :)