comparison mercurial/scmutil.py @ 44858:5d8ae9248a70

scmutil: speed up relativization of paths when it's a no-op Running commands from the root is commmon, in particular for automation. Running `hg files > /tmp/a` from the root of mozilla-central on linux: before: real 0m1,510s user 0m1,387s sys 0m0,090s after: real 0m1,266s user 0m1,165s sys 0m0,073s (there are 280k paths, so this was costing ~1us per path somehow) Differential Revision: https://phab.mercurial-scm.org/D8585
author Valentin Gatien-Baron <valentin.gatienbaron@gmail.com>
date Tue, 26 May 2020 07:03:11 -0400
parents 62435a5b46fe
children d044b66d8429
comparison
equal deleted inserted replaced
44857:e607099d8b93 44858:5d8ae9248a70
801 _(b"ui.relative-paths is not a boolean ('%s')") % config 801 _(b"ui.relative-paths is not a boolean ('%s')") % config
802 ) 802 )
803 803
804 if relative: 804 if relative:
805 cwd = repo.getcwd() 805 cwd = repo.getcwd()
806 pathto = repo.pathto 806 if cwd != b'':
807 return lambda f: pathto(f, cwd) 807 # this branch is correct when cwd == b'', ie cwd = repo root,
808 elif repo.ui.configbool(b'ui', b'slash'): 808 # but it's slower
809 pathto = repo.pathto
810 return lambda f: pathto(f, cwd)
811 if repo.ui.configbool(b'ui', b'slash'):
809 return lambda f: f 812 return lambda f: f
810 else: 813 else:
811 return util.localpath 814 return util.localpath
812 815
813 816