[PATCH 3 of 3] strip: compress bundle2 backup using BZ
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Tue Sep 29 17:28:02 CDT 2015
# HG changeset patch
# User Pierre-Yves David <pierre-yves.david at fb.com>
# Date 1443562923 25200
# Tue Sep 29 14:42:03 2015 -0700
# Node ID f5539f6be041729f27261270563914e8c06208a9
# Parent 405450625fe8de8f75f66f05b10be3c6a9a93b62
strip: compress bundle2 backup using BZ
Storing uncompressed bundle on disk would be a regression. Strip backup using
bundle2 are now compressed when requested.
diff --git a/mercurial/repair.py b/mercurial/repair.py
--- a/mercurial/repair.py
+++ b/mercurial/repair.py
@@ -36,17 +36,21 @@ def _bundle(repo, bases, heads, node, su
allcommits = repo.set('%ln::%ln', bases, heads)
allhashes = sorted(c.hex() for c in allcommits)
totalhash = util.sha1(''.join(allhashes)).hexdigest()
name = "%s/%s-%s-%s.hg" % (backupdir, short(node), totalhash[:8], suffix)
+ comp = None
if cgversion != '01':
bundletype = "HG20"
+ if compress:
+ comp = 'BZ'
elif compress:
bundletype = "HG10BZ"
else:
bundletype = "HG10UN"
- return changegroup.writebundle(repo.ui, cg, name, bundletype, vfs)
+ return changegroup.writebundle(repo.ui, cg, name, bundletype, vfs,
+ compression=comp)
def _collectfiles(repo, striprev):
"""find out the filelogs affected by the strip"""
files = set()
diff --git a/tests/test-generaldelta.t b/tests/test-generaldelta.t
--- a/tests/test-generaldelta.t
+++ b/tests/test-generaldelta.t
@@ -105,10 +105,10 @@ Test format.aggressivemergedeltas
Test that strip bundle use bundle2
$ hg --config extensions.strip= strip .
0 files updated, 0 files merged, 5 files removed, 0 files unresolved
saved backup bundle to $TESTTMP/aggressive/.hg/strip-backup/1c5d4dc9a8b8-6c68e60c-backup.hg (glob)
$ hg debugbundle .hg/strip-backup/*
- Stream params: {}
+ Stream params: {'Compression': 'BZ'}
changegroup -- "{'version': '02'}"
1c5d4dc9a8b8d6e1750966d343e94db665e7a1e9
$ cd ..
More information about the Mercurial-devel
mailing list