# HG changeset patch # User Martin von Zweigbergk # Date 1549563657 28800 # Node ID 3d9d5e612e670d1db690237394a7083de4eecea4 # Parent 3d094bfaf885d1d4f4d22d8f84d339ee17c4bb7f subrepo: adjust subrepo prefix before calling subrepo.archive() (API) Differential Revision: https://phab.mercurial-scm.org/D5887 diff -r 3d094bfaf885 -r 3d9d5e612e67 hgext/largefiles/overrides.py --- 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 diff -r 3d094bfaf885 -r 3d9d5e612e67 mercurial/archival.py --- 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')) diff -r 3d094bfaf885 -r 3d9d5e612e67 mercurial/subrepo.py --- 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()