Mercurial > hg-stable
changeset 41757:980e05204ed8
subrepo: use root-repo-relative path from `hg files` with ui.relative-paths=no
The fix is to pass in a "subuipathfn" as we do everywhere else.
Differential Revision: https://phab.mercurial-scm.org/D5978
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Sun, 17 Feb 2019 09:12:30 -0800 |
parents | 31b84c72ada0 |
children | f96988680afe |
files | mercurial/cmdutil.py mercurial/commands.py mercurial/subrepo.py tests/test-subrepo.t |
diffstat | 4 files changed, 11 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Sun Feb 17 09:05:28 2019 -0800 +++ b/mercurial/cmdutil.py Sun Feb 17 09:12:30 2019 -0800 @@ -2171,11 +2171,10 @@ forgot.extend(f for f in forget if f not in rejected) return bad, forgot -def files(ui, ctx, m, fm, fmt, subrepos): +def files(ui, ctx, m, uipathfn, fm, fmt, subrepos): ret = 1 needsfctx = ui.verbose or {'size', 'flags'} & fm.datahint() - uipathfn = scmutil.getuipathfn(ctx.repo(), legacyrelativevalue=True) for f in ctx.matches(m): fm.startitem() fm.context(ctx=ctx) @@ -2188,11 +2187,13 @@ for subpath in sorted(ctx.substate): submatch = matchmod.subdirmatcher(subpath, m) + subuipathfn = scmutil.subdiruipathfn(subpath, uipathfn) if (subrepos or m.exact(subpath) or any(submatch.files())): sub = ctx.sub(subpath) try: recurse = m.exact(subpath) or subrepos - if sub.printfiles(ui, submatch, fm, fmt, recurse) == 0: + if sub.printfiles(ui, submatch, subuipathfn, fm, fmt, + recurse) == 0: ret = 0 except error.LookupError: ui.status(_("skipping missing subrepository: %s\n")
--- a/mercurial/commands.py Sun Feb 17 09:05:28 2019 -0800 +++ b/mercurial/commands.py Sun Feb 17 09:12:30 2019 -0800 @@ -2213,8 +2213,10 @@ m = scmutil.match(ctx, pats, opts) ui.pager('files') + uipathfn = scmutil.getuipathfn(ctx.repo(), legacyrelativevalue=True) with ui.formatter('files', opts) as fm: - return cmdutil.files(ui, ctx, m, fm, fmt, opts.get('subrepos')) + return cmdutil.files(ui, ctx, m, uipathfn, fm, fmt, + opts.get('subrepos')) @command( 'forget',
--- a/mercurial/subrepo.py Sun Feb 17 09:05:28 2019 -0800 +++ b/mercurial/subrepo.py Sun Feb 17 09:12:30 2019 -0800 @@ -325,7 +325,7 @@ """Resolve the fileset expression for this repo""" return matchmod.never(badfn=badfn) - def printfiles(self, ui, m, fm, fmt, subrepos): + def printfiles(self, ui, m, uipathfn, fm, fmt, subrepos): """handle the files command for this subrepo""" return 1 @@ -795,7 +795,7 @@ return ctx.flags(name) @annotatesubrepoerror - def printfiles(self, ui, m, fm, fmt, subrepos): + def printfiles(self, ui, m, uipathfn, fm, fmt, subrepos): # If the parent context is a workingctx, use the workingctx here for # consistency. if self._ctx.rev() is None: @@ -803,7 +803,7 @@ else: rev = self._state[1] ctx = self._repo[rev] - return cmdutil.files(ui, ctx, m, fm, fmt, subrepos) + return cmdutil.files(ui, ctx, m, uipathfn, fm, fmt, subrepos) @annotatesubrepoerror def matchfileset(self, expr, badfn=None):