Mercurial > hg
changeset 41491:e6ec0737b706
status: extract helper for producing relative or absolute path for UI
I put the helper in scmutil so it can be used by most modules. I would
have put it in utils.pathutil, but I think that's supposed to be
unaware of repos.
Differential Revision: https://phab.mercurial-scm.org/D5745
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Tue, 29 Jan 2019 15:37:14 -0800 |
parents | 09f1c17e24dd |
children | 02186c6871ac |
files | mercurial/commands.py mercurial/scmutil.py |
diffstat | 2 files changed, 12 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Thu Jan 31 18:17:02 2019 +0530 +++ b/mercurial/commands.py Tue Jan 29 15:37:14 2019 -0800 @@ -5414,10 +5414,8 @@ repo = scmutil.unhidehashlikerevs(repo, revs, 'nowarn') ctx1, ctx2 = scmutil.revpair(repo, revs) - if pats or ui.configbool('commands', 'status.relative'): - cwd = repo.getcwd() - else: - cwd = '' + relative = pats or ui.configbool('commands', 'status.relative') + uipathfn = scmutil.getuipathfn(repo, relative) if opts.get('print0'): end = '\0' @@ -5468,10 +5466,10 @@ fm.context(ctx=ctx2) fm.data(path=f) fm.condwrite(showchar, 'status', '%s ', char, label=label) - fm.plain(fmt % repo.pathto(f, cwd), label=label) + fm.plain(fmt % uipathfn(f), label=label) if f in copy: fm.data(source=copy[f]) - fm.plain((' %s' + end) % repo.pathto(copy[f], cwd), + fm.plain((' %s' + end) % uipathfn(copy[f]), label='status.copied') if ((ui.verbose or ui.configbool('commands', 'status.verbose'))
--- a/mercurial/scmutil.py Thu Jan 31 18:17:02 2019 +0530 +++ b/mercurial/scmutil.py Tue Jan 29 15:37:14 2019 -0800 @@ -725,6 +725,14 @@ return [] return parents +def getuipathfn(repo, relative): + if relative: + cwd = repo.getcwd() + pathto = repo.pathto + return lambda f: pathto(f, cwd) + else: + return lambda f: f + def expandpats(pats): '''Expand bare globs when running on windows. On posix we assume it already has already been done by sh.'''