repair: make paths in "_bundle()" relative to ".hg"
This patch makes paths below in "_bundle()" relative to ".hg":
- backup directory ("strip-backup"), and
- bundle file under backup directory
"vfs" is passed to "changegroup.writebundle()" to use relative path
directly.
This patch applies "vfs.join()" on the value returned by "_bundle()",
because the caller expect it to return absolute path.
This will be changed by succeeding patch changing the caller side.
--- a/mercurial/repair.py Sun Mar 09 01:03:28 2014 +0900
+++ b/mercurial/repair.py Sun Mar 09 01:03:28 2014 +0900
@@ -15,15 +15,16 @@
def _bundle(repo, bases, heads, node, suffix, compress=True):
"""create a bundle with the specified revisions as a backup"""
cg = changegroup.changegroupsubset(repo, bases, heads, 'strip')
- backupdir = repo.join("strip-backup")
- if not os.path.isdir(backupdir):
- os.mkdir(backupdir)
- name = os.path.join(backupdir, "%s-%s.hg" % (short(node), suffix))
+ backupdir = "strip-backup"
+ vfs = repo.vfs
+ if not vfs.isdir(backupdir):
+ vfs.mkdir(backupdir)
+ name = "%s/%s-%s.hg" % (backupdir, short(node), suffix)
if compress:
bundletype = "HG10BZ"
else:
bundletype = "HG10UN"
- return changegroup.writebundle(cg, name, bundletype)
+ return vfs.join(changegroup.writebundle(cg, name, bundletype, vfs))
def _collectfiles(repo, striprev):
"""find out the filelogs affected by the strip"""