Skip to content
Snippets Groups Projects
Commit ad5b6137 authored by Katsunori FUJIWARA's avatar Katsunori FUJIWARA
Browse files

repair: make "strip()" treat bundle files via vfs

This patch makes "repair.strip()" treat bundle files via vfs.

This patch also avoids applying "vfs.join()" on the value returned by
"changegroup.writebundle()", to get relative path from "_bundle()".
parent 5b58714e
No related merge requests found
......@@ -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 @@
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,5 +108,6 @@
# 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)
......@@ -112,7 +112,9 @@
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,9 +146,9 @@
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',
......@@ -149,9 +151,9 @@
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:
......@@ -154,8 +156,8 @@
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,6 +174,6 @@
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")
......@@ -176,6 +178,6 @@
elif saveheads:
ui.warn(_("strip failed, partial bundle stored in '%s'\n")
% chgrpfile)
% vfs.join(chgrpfile))
raise
repo.destroyed()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment