Mercurial > public > mercurial-scm > hg
diff mercurial/commands.py @ 23891:5827ad0b849e
unbundle: support bundle2 files
This adds support for bundle2 files to the unbundle command.
author | Eric Sumner <ericsumner@fb.com> |
---|---|
date | Wed, 14 Jan 2015 17:09:55 -0800 |
parents | 6d8bebf4d6d4 |
children | cda18ded2c48 |
line wrap: on
line diff
--- a/mercurial/commands.py Fri Jan 16 12:53:45 2015 -0800 +++ b/mercurial/commands.py Wed Jan 14 17:09:55 2015 -0800 @@ -6142,8 +6142,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()