Skip to content
  • sliquister's avatar
    commit: improve the files field of changelog for merges · 99ebde4fec99
    sliquister authored
    Currently, the files list of merge commits repeats all the deletions
    (either actual deletions, or files that got renamed) that happened
    between base and p2 of the merge. If p2 is the main branch, the list
    can easily be much bigger than the change being merged.
    
    This results in various problems worth improving:
    - changelog is bigger than necessary
    - `hg log directory` lists many unrelated merge commits, and `hg log
      -v -r commit` frequently fills multiple screens worth of files
    - it possibly slows down adjustlinkrev, by forcing it to read more
      manifests, and that function can certainly be a bottleneck
    - the server side of pulls can waste a lot of time simply opening the
      filelogs for pointless files (the constant factors for opening even
      a tiny filelog is apparently pretty bad)
    
    So stop listing such files as described in the code.  Impacted merge
    commits and their descendants get a different hash than they would
    have without this. This doesn't s...
    99ebde4fec99