Mercurial > hg
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 |