[PATCH 2 of 2 v3] unbundle: support bundle2 files
Eric Sumner
ericsumner at fb.com
Fri Jan 16 15:45:09 CST 2015
# HG changeset patch
# User Eric Sumner <ericsumner at fb.com>
# Date 1421284195 28800
# Wed Jan 14 17:09:55 2015 -0800
# Node ID 55f663bdf6b3e045898789f64e5e878bcaaddf1b
# Parent 8e4eb0dc42df5f062bec64230e6da54800abde60
unbundle: support bundle2 files
This adds support for bundle2 files to the unbundle command.
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -6143,8 +6143,20 @@
for fname in fnames:
f = hg.openpath(ui, fname)
gen = exchange.readbundle(ui, f, fname)
- modheads = changegroup.addchangegroup(repo, gen, 'unbundle',
- 'bundle:' + fname)
+ if isinstance(gen, bundle2.unbundle20):
+ tr = repo.transaction('unbundle')
+ try:
+ op = bundle2.processbundle(repo, gen, lambda: tr)
+ tr.close()
+ finally:
+ if tr:
+ tr.release()
+ changes = [r.get('result', 0)
+ for r in op.records['changegroup']]
+ modheads = changegroup.combineresults(changes)
+ else:
+ modheads = changegroup.addchangegroup(repo, gen, 'unbundle',
+ 'bundle:' + fname)
finally:
lock.release()
diff --git a/tests/test-bundle2-format.t b/tests/test-bundle2-format.t
--- a/tests/test-bundle2-format.t
+++ b/tests/test-bundle2-format.t
@@ -762,13 +762,11 @@
9520eea781bcca16c1e15acc0ba14335a0e8e5ba
eea13746799a9e0bfd88f29d3c2e9dc9389f524f
02de42196ebee42ef284b6780a87cdc96e8eaab6
- $ hg unbundle2 < ../rev.hg2
+ $ hg unbundle ../rev.hg2
adding changesets
adding manifests
adding file changes
added 0 changesets with 0 changes to 3 files
- 0 unread bytes
- addchangegroup return: 1
with reply
More information about the Mercurial-devel
mailing list