# HG changeset patch # User FUJIWARA Katsunori # Date 1394294608 -32400 # Node ID 1df99f1ea28df18a217ff1e15f30dda3ce57a51f # Parent 4fdd1172d37e505de657ebd5e5a9f2db9f2fa990 shelve: add "applybundle()" to invoke "readbundle()" with relative path and vfs "applybundle()" also includes "addchangegroup()" invocation to encapsulate "vfs.join()" inside it. diff -r 4fdd1172d37e -r 1df99f1ea28d hgext/shelve.py --- a/hgext/shelve.py Sun Mar 09 01:03:28 2014 +0900 +++ b/hgext/shelve.py Sun Mar 09 01:03:28 2014 +0900 @@ -68,6 +68,15 @@ raise raise util.Abort(_("shelved change '%s' not found") % self.name) + def applybundle(self): + fp = self.opener() + try: + gen = changegroup.readbundle(fp, self.fname, self.vfs) + changegroup.addchangegroup(self.repo, gen, 'unshelve', + 'bundle:' + self.vfs.join(self.fname)) + finally: + fp.close() + class shelvedstate(object): """Handle persistence during unshelving operations. @@ -560,16 +569,10 @@ node = cmdutil.commit(ui, repo, commitfunc, [], tempopts) tmpwctx = repo[node] - try: - ui.quiet = True - fp = shelvedfile(repo, basename, 'hg').opener() - gen = changegroup.readbundle(fp, fp.name) - changegroup.addchangegroup(repo, gen, 'unshelve', - 'bundle:' + fp.name) - nodes = [ctx.node() for ctx in repo.set('%d:', oldtiprev)] - phases.retractboundary(repo, phases.secret, nodes) - finally: - fp.close() + ui.quiet = True + shelvedfile(repo, basename, 'hg').applybundle() + nodes = [ctx.node() for ctx in repo.set('%d:', oldtiprev)] + phases.retractboundary(repo, phases.secret, nodes) ui.quiet = oldquiet