Mercurial > hg
changeset 32468:4c4d91908492
strip: use the 'writenewbundle' function to get bundle on disk
This will ensure the backup bundle use the best available logic (eg: includes
relevant caches so that we loose less of them on strip.)
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Fri, 05 May 2017 18:15:42 +0200 |
parents | ad37c569ec81 |
children | 0e93dc8c0f9f |
files | mercurial/repair.py |
diffstat | 1 files changed, 7 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/repair.py Tue May 23 02:23:07 2017 +0200 +++ b/mercurial/repair.py Fri May 05 18:15:42 2017 +0200 @@ -16,6 +16,7 @@ from . import ( bundle2, changegroup, + discovery, error, exchange, obsolete, @@ -24,10 +25,7 @@ def _bundle(repo, bases, heads, node, suffix, compress=True): """create a bundle with the specified revisions as a backup""" - cgversion = changegroup.safeversion(repo) - cg = changegroup.changegroupsubset(repo, bases, heads, 'strip', - version=cgversion) backupdir = "strip-backup" vfs = repo.vfs if not vfs.isdir(backupdir): @@ -39,6 +37,7 @@ totalhash = hashlib.sha1(''.join(allhashes)).hexdigest() name = "%s/%s-%s-%s.hg" % (backupdir, short(node), totalhash[:8], suffix) + cgversion = changegroup.safeversion(repo) comp = None if cgversion != '01': bundletype = "HG20" @@ -48,8 +47,11 @@ bundletype = "HG10BZ" else: bundletype = "HG10UN" - return bundle2.writebundle(repo.ui, cg, name, bundletype, vfs, - compression=comp) + + outgoing = discovery.outgoing(repo, missingroots=bases, missingheads=heads) + contentopts = {'cg.version': cgversion} + return bundle2.writenewbundle(repo.ui, repo, 'strip', name, bundletype, + outgoing, contentopts, vfs, compression=comp) def _collectfiles(repo, striprev): """find out the filelogs affected by the strip"""