Mercurial > hg
changeset 41631:3d9d5e612e67
subrepo: adjust subrepo prefix before calling subrepo.archive() (API)
Differential Revision: https://phab.mercurial-scm.org/D5887
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 07 Feb 2019 10:20:57 -0800 |
parents | 3d094bfaf885 |
children | 31dfe7026f8d |
files | hgext/largefiles/overrides.py mercurial/archival.py mercurial/subrepo.py |
diffstat | 3 files changed, 12 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- 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()