subrepo: adjust subrepo prefix before calling subrepo.archive() (API)
Differential Revision: https://phab.mercurial-scm.org/D5887
--- a/hgext/largefiles/overrides.py Thu Feb 07 09:52:36 2019 -0800
+++ b/hgext/largefiles/overrides.py Thu Feb 07 10:20:57 2019 -0800
@@ -998,8 +998,9 @@
for subpath in sorted(ctx.substate):
sub = ctx.workingsub(subpath)
submatch = matchmod.subdirmatcher(subpath, match)
+ subprefix = prefix + subpath + '/'
sub._repo.lfstatus = True
- sub.archive(archiver, prefix, submatch)
+ sub.archive(archiver, subprefix, submatch)
archiver.done()
@@ -1025,7 +1026,7 @@
if decode:
data = repo._repo.wwritedata(name, data)
- archiver.addfile(prefix + repo._path + '/' + name, mode, islink, data)
+ archiver.addfile(prefix + name, mode, islink, data)
for f in ctx:
ff = ctx.flags(f)
@@ -1051,8 +1052,9 @@
for subpath in sorted(ctx.substate):
sub = ctx.workingsub(subpath)
submatch = matchmod.subdirmatcher(subpath, match)
+ subprefix = prefix + subpath + '/'
sub._repo.lfstatus = True
- sub.archive(archiver, prefix + repo._path + '/', submatch, decode)
+ sub.archive(archiver, subprefix, submatch, decode)
# If a largefile is modified, the change is not reflected in its
# standin until a commit. cmdutil.bailifchanged() raises an exception
--- a/mercurial/archival.py Thu Feb 07 09:52:36 2019 -0800
+++ b/mercurial/archival.py Thu Feb 07 10:20:57 2019 -0800
@@ -340,7 +340,8 @@
for subpath in sorted(ctx.substate):
sub = ctx.workingsub(subpath)
submatch = matchmod.subdirmatcher(subpath, match)
- total += sub.archive(archiver, prefix, submatch, decode)
+ subprefix = prefix + subpath + '/'
+ total += sub.archive(archiver, subprefix, submatch, decode)
if total == 0:
raise error.Abort(_('no files match the archive pattern'))
--- a/mercurial/subrepo.py Thu Feb 07 09:52:36 2019 -0800
+++ b/mercurial/subrepo.py Thu Feb 07 10:20:57 2019 -0800
@@ -343,8 +343,8 @@
flags = self.fileflags(name)
mode = 'x' in flags and 0o755 or 0o644
symlink = 'l' in flags
- archiver.addfile(prefix + self._path + '/' + name,
- mode, symlink, self.filedata(name, decode))
+ archiver.addfile(prefix + name, mode, symlink,
+ self.filedata(name, decode))
progress.increment()
progress.complete()
return total
@@ -576,7 +576,8 @@
for subpath in ctx.substate:
s = subrepo(ctx, subpath, True)
submatch = matchmod.subdirmatcher(subpath, match)
- total += s.archive(archiver, prefix + self._path + '/', submatch,
+ subprefix = prefix + subpath + '/'
+ total += s.archive(archiver, subprefix, submatch,
decode)
return total
@@ -1673,8 +1674,7 @@
data = info.linkname
else:
data = tar.extractfile(info).read()
- archiver.addfile(prefix + self._path + '/' + bname,
- info.mode, info.issym(), data)
+ archiver.addfile(prefix + bname, info.mode, info.issym(), data)
total += 1
progress.increment()
progress.complete()