Mercurial > hg
view tests/test-config-env.py @ 50821:28c0fcff24e5 stable
rhg: fix the bug where sparse config is interpreted as relglob instead of glob
relglob apparently (in contrast with relpath) matches everywhere in the tree,
whereas glob only matches at the root.
The python version interprets these patterns as "glob" (see
"normalize(include, b'glob', ...)" in match.py)
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Thu, 10 Aug 2023 19:00:19 +0100 |
parents | 6000f5b25c9b |
children | 493034cc3265 |
line wrap: on
line source
# Test the config layer generated by environment variables import os from mercurial import ( encoding, extensions, rcutil, ui as uimod, util, ) from mercurial.utils import procutil testtmp = encoding.environ[b'TESTTMP'] # prepare hgrc files def join(name): return os.path.join(testtmp, name) with open(join(b'sysrc'), 'wb') as f: f.write(b'[ui]\neditor=e0\n[pager]\npager=p0\n') with open(join(b'userrc'), 'wb') as f: f.write(b'[ui]\neditor=e1') # replace rcpath functions so they point to the files above def systemrcpath(): return [join(b'sysrc')] def userrcpath(): return [join(b'userrc')] extensions.wrapfunction(rcutil, 'default_rc_resources', lambda orig: []) rcutil.systemrcpath = systemrcpath rcutil.userrcpath = userrcpath # utility to print configs def printconfigs(env): encoding.environ = env rcutil._rccomponents = None # reset cache ui = uimod.ui.load() for section, name, value in ui.walkconfig(): source = ui.configsource(section, name) procutil.stdout.write( b'%s.%s=%s # %s\n' % (section, name, value, util.pconvert(source)) ) procutil.stdout.write(b'\n') # environment variable overrides printconfigs({}) printconfigs({b'EDITOR': b'e2', b'PAGER': b'p2'})