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
--- 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.'''