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

changegroup: add "vfs" argument to "writebundle()" for relative access via vfs

Before this patch, filename specified to "changegroup.writebundle()"
should be absolute one.

In some cases, they should be relative to repository root, store and
so on (backup before strip, for example).

This patch adds "vfs" argument to "writebundle()", and makes
"writebundle()" open (and unlink) "filename" via vfs for relative
access, if both filename and vfs are specified.
parent 37cdf1fc
No related branches found
No related tags found
No related merge requests found
......@@ -59,7 +59,7 @@
# hgweb uses this list to communicate its preferred type
bundlepriority = ['HG10GZ', 'HG10BZ', 'HG10UN']
def writebundle(cg, filename, bundletype):
def writebundle(cg, filename, bundletype, vfs=None):
"""Write a bundle file and return its filename.
Existing files will not be overwritten.
......@@ -72,7 +72,10 @@
cleanup = None
try:
if filename:
fh = open(filename, "wb")
if vfs:
fh = vfs.open(filename, "wb")
else:
fh = open(filename, "wb")
else:
fd, filename = tempfile.mkstemp(prefix="hg-bundle-", suffix=".hg")
fh = os.fdopen(fd, "wb")
......@@ -112,7 +115,10 @@
if fh is not None:
fh.close()
if cleanup is not None:
os.unlink(cleanup)
if filename and vfs:
vfs.unlink(cleanup)
else:
os.unlink(cleanup)
def decompressor(fh, alg):
if alg == 'UN':
......
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