# HG changeset patch # User Thomas Arendsen Hein # Date 1164233235 -3600 # Node ID 1debe70db9d7a02d1a6ec93789b5ea9dcaf92601 # Parent 67f44b8257842ef920b68483f46f8b62451cf95a Make mq use changegroup.writebundle for writing strip backups. diff --git a/hgext/mq.py b/hgext/mq.py --- a/hgext/mq.py +++ b/hgext/mq.py @@ -33,7 +33,7 @@ from mercurial.demandload import * from mercurial.i18n import gettext as _ from mercurial import commands demandload(globals(), "os sys re struct traceback errno bz2") -demandload(globals(), "mercurial:cmdutil,hg,patch,revlog,util") +demandload(globals(), "mercurial:cmdutil,hg,patch,revlog,util,changegroup") commands.norepo += " qclone qversion" @@ -612,22 +612,7 @@ class queue: name = os.path.join(backupdir, "%s" % revlog.short(rev)) name = savename(name) self.ui.warn("saving bundle to %s\n" % name) - # TODO, exclusive open - f = open(name, "wb") - try: - f.write("HG10") - z = bz2.BZ2Compressor(9) - while 1: - chunk = cg.read(4096) - if not chunk: - break - f.write(z.compress(chunk)) - f.write(z.flush()) - except: - os.unlink(name) - raise - f.close() - return name + return changegroup.writebundle(cg, name, "HG10BZ") def stripall(rev, revnum): cl = repo.changelog