Skip to content
  • Kyle Lippincott's avatar
    remotefilelog: include file contents in bundles produced during strip · 47a9527731c3
    Kyle Lippincott authored
    `hg strip` and other things that use repair.strip (such as the narrow
    extension's `hg tracked --removeinclude`) will "save" some commits that have a
    higher revision number than the oldest commit we're stripping, but aren't
    actually descended from any of the commits that we're stripping. It saves them
    in a bundle, and then reapplies them to the repo.
    
    Remotefilelog doesn't generally participate in strip, it doesn't contribute
    files to either the backup bundle or the "saved" bundle, and doesn't adjust
    linknodes when commits are stripped. This can break things like push, which
    rely on the linknodes.
    
    This change makes it so that remotefilelog includes files in these bundles
    during strip operations. During reapplication, the files are reapplied from the
    bundle, and the linknode is properly updated.
    
    Differential Revision: https://phab.mercurial-scm.org/D10320
    47a9527731c3