Mercurial > hg
view mercurial/scmwindows.py @ 43162:3c6976b1f693
py3-discovery: using plain str in stats dict
rust-cpython converts automatically from Rust strings to
the appropriate `str` for the target Python version.
Insisting on discovery stats dict keys to be bytes hence breaks
the process (this is spotted by test-setdiscovery.t).
Now that byteify-strings has been run on the entire
codebase, and the import transformer is not there any more,
the simplest fix is to make the keys plain str again.
Another possible fix would be to forcefully convert to bytes in
rust-cpython code, but that feels less natural, and would probably
have to be reverted down the road.
Differential Revision: https://phab.mercurial-scm.org/D7039
author | Georges Racinet <georges.racinet@octobus.net> |
---|---|
date | Thu, 10 Oct 2019 11:33:33 +0200 |
parents | 687b865b95ad |
children | a50fecefa691 fe73ec69350e |
line wrap: on
line source
from __future__ import absolute_import import os from . import ( encoding, pycompat, util, win32, ) try: import _winreg as winreg winreg.CloseKey except ImportError: import winreg # MS-DOS 'more' is the only pager available by default on Windows. fallbackpager = b'more' def systemrcpath(): '''return default os-specific hgrc search path''' rcpath = [] filename = win32.executablepath() # Use mercurial.ini found in directory with hg.exe progrc = os.path.join(os.path.dirname(filename), b'mercurial.ini') rcpath.append(progrc) # Use hgrc.d found in directory with hg.exe progrcd = os.path.join(os.path.dirname(filename), b'hgrc.d') if os.path.isdir(progrcd): for f, kind in util.listdir(progrcd): if f.endswith(b'.rc'): rcpath.append(os.path.join(progrcd, f)) # else look for a system rcpath in the registry value = util.lookupreg( b'SOFTWARE\\Mercurial', None, winreg.HKEY_LOCAL_MACHINE ) if not isinstance(value, str) or not value: return rcpath value = util.localpath(value) for p in value.split(pycompat.ospathsep): if p.lower().endswith(b'mercurial.ini'): rcpath.append(p) elif os.path.isdir(p): for f, kind in util.listdir(p): if f.endswith(b'.rc'): rcpath.append(os.path.join(p, f)) return rcpath def userrcpath(): '''return os-specific hgrc search path to the user dir''' home = os.path.expanduser(b'~') path = [os.path.join(home, b'mercurial.ini'), os.path.join(home, b'.hgrc')] userprofile = encoding.environ.get(b'USERPROFILE') if userprofile and userprofile != home: path.append(os.path.join(userprofile, b'mercurial.ini')) path.append(os.path.join(userprofile, b'.hgrc')) return path def termsize(ui): return win32.termsize()