diff --git a/mercurial/repair.py b/mercurial/repair.py --- a/mercurial/repair.py +++ b/mercurial/repair.py @@ -9,7 +9,6 @@ from mercurial import changegroup from mercurial.node import short from mercurial.i18n import _ -import os import errno def _bundle(repo, bases, heads, node, suffix, compress=True): @@ -24,7 +23,7 @@ def _bundle(repo, bases, heads, node, su bundletype = "HG10BZ" else: bundletype = "HG10UN" - return vfs.join(changegroup.writebundle(cg, name, bundletype, vfs)) + return changegroup.writebundle(cg, name, bundletype, vfs) def _collectfiles(repo, striprev): """find out the filelogs affected by the strip""" @@ -109,10 +108,13 @@ def strip(ui, repo, nodelist, backup="al # create a changegroup for all the branches we need to keep backupfile = None + vfs = repo.vfs if backup == "all": backupfile = _bundle(repo, stripbases, cl.heads(), node, topic) - repo.ui.status(_("saved backup bundle to %s\n") % backupfile) - repo.ui.log("backupbundle", "saved backup bundle to %s\n", backupfile) + repo.ui.status(_("saved backup bundle to %s\n") % + vfs.join(backupfile)) + repo.ui.log("backupbundle", "saved backup bundle to %s\n", + vfs.join(backupfile)) if saveheads or savebases: # do not compress partial bundle if we remove it from disk later chgrpfile = _bundle(repo, savebases, saveheads, node, 'temp', @@ -144,18 +146,18 @@ def strip(ui, repo, nodelist, backup="al if saveheads or savebases: ui.note(_("adding branch\n")) - f = open(chgrpfile, "rb") - gen = changegroup.readbundle(f, chgrpfile) + f = vfs.open(chgrpfile, "rb") + gen = changegroup.readbundle(f, chgrpfile, vfs) if not repo.ui.verbose: # silence internal shuffling chatter repo.ui.pushbuffer() changegroup.addchangegroup(repo, gen, 'strip', - 'bundle:' + chgrpfile, True) + 'bundle:' + vfs.join(chgrpfile), True) if not repo.ui.verbose: repo.ui.popbuffer() f.close() if not keeppartialbundle: - os.unlink(chgrpfile) + vfs.unlink(chgrpfile) # remove undo files for undovfs, undofile in repo.undofiles(): @@ -172,10 +174,10 @@ def strip(ui, repo, nodelist, backup="al except: # re-raises if backupfile: ui.warn(_("strip failed, full bundle stored in '%s'\n") - % backupfile) + % vfs.join(backupfile)) elif saveheads: ui.warn(_("strip failed, partial bundle stored in '%s'\n") - % chgrpfile) + % vfs.join(chgrpfile)) raise repo.destroyed()