mercurial/repair.py
changeset 32628 5732e6d2b369
parent 32623 ed566a59f660
child 32629 71eb6a098315
equal deleted inserted replaced
32627:b36b02d57021 32628:5732e6d2b369
    21     exchange,
    21     exchange,
    22     obsolete,
    22     obsolete,
    23     util,
    23     util,
    24 )
    24 )
    25 
    25 
    26 def _bundle(repo, bases, heads, node, suffix, compress=True):
    26 def _bundle(repo, bases, heads, node, suffix, compress=True, obsolescence=True):
    27     """create a bundle with the specified revisions as a backup"""
    27     """create a bundle with the specified revisions as a backup"""
    28 
    28 
    29     backupdir = "strip-backup"
    29     backupdir = "strip-backup"
    30     vfs = repo.vfs
    30     vfs = repo.vfs
    31     if not vfs.isdir(backupdir):
    31     if not vfs.isdir(backupdir):
    47         bundletype = "HG10BZ"
    47         bundletype = "HG10BZ"
    48     else:
    48     else:
    49         bundletype = "HG10UN"
    49         bundletype = "HG10UN"
    50 
    50 
    51     outgoing = discovery.outgoing(repo, missingroots=bases, missingheads=heads)
    51     outgoing = discovery.outgoing(repo, missingroots=bases, missingheads=heads)
    52     contentopts = {'cg.version': cgversion, 'obsolescence': True}
    52     contentopts = {'cg.version': cgversion, 'obsolescence': obsolescence}
    53     return bundle2.writenewbundle(repo.ui, repo, 'strip', name, bundletype,
    53     return bundle2.writenewbundle(repo.ui, repo, 'strip', name, bundletype,
    54                                   outgoing, contentopts, vfs, compression=comp)
    54                                   outgoing, contentopts, vfs, compression=comp)
    55 
    55 
    56 def _collectfiles(repo, striprev):
    56 def _collectfiles(repo, striprev):
    57     """find out the filelogs affected by the strip"""
    57     """find out the filelogs affected by the strip"""
   148         repo.ui.log("backupbundle", "saved backup bundle to %s\n",
   148         repo.ui.log("backupbundle", "saved backup bundle to %s\n",
   149                     vfs.join(backupfile))
   149                     vfs.join(backupfile))
   150     tmpbundlefile = None
   150     tmpbundlefile = None
   151     if saveheads:
   151     if saveheads:
   152         # do not compress temporary bundle if we remove it from disk later
   152         # do not compress temporary bundle if we remove it from disk later
       
   153         #
       
   154         # We do not include obsolescence, it might re-introduce prune markers
       
   155         # we are trying to strip.  This is harmless since the stripped markers
       
   156         # are already backed up and we did not touched the markers for the
       
   157         # saved changesets.
   153         tmpbundlefile = _bundle(repo, savebases, saveheads, node, 'temp',
   158         tmpbundlefile = _bundle(repo, savebases, saveheads, node, 'temp',
   154                             compress=False)
   159                                 compress=False, obsolescence=False)
   155 
   160 
   156     mfst = repo.manifestlog._revlog
   161     mfst = repo.manifestlog._revlog
   157 
   162 
   158     curtr = repo.currenttransaction()
   163     curtr = repo.currenttransaction()
   159     if curtr is not None:
   164     if curtr is not None: