##// END OF EJS Templates
nodemap: track the maximum revision tracked in the nodemap...
nodemap: track the maximum revision tracked in the nodemap We need a simple way to detect when the on disk data contains less revision than the index we read from disk. The docket file is meant for this, we just had to start tracking that data. We should also try to detect strip operation, but we will deal with this in later changesets. Right now we are focusing on defining the API for index supporting persistent nodemap. Differential Revision: https://phab.mercurial-scm.org/D7888

File last commit:

r44403:1ccf340a default
r44807:e41a164d default
Show More
scmwindows.py
81 lines | 2.4 KiB | text/x-python | PythonLexer
Gregory Szorc
scmwindows: use absolute_import
r27481 from __future__ import absolute_import
Kevin Bullock
scmutil: split platform-specific bits into their own modules...
r18690 import os
Gregory Szorc
scmwindows: use absolute_import
r27481
from . import (
Pulkit Goyal
py3: replace os.environ with encoding.environ (part 4 of 5)
r30637 encoding,
Pulkit Goyal
py3: replace os.pathsep with pycompat.ospathsep...
r30612 pycompat,
Gregory Szorc
scmwindows: use absolute_import
r27481 util,
Yuya Nishihara
scmutil: move util.termwidth()...
r30309 win32,
Gregory Szorc
scmwindows: use absolute_import
r27481 )
Kevin Bullock
scmutil: split platform-specific bits into their own modules...
r18690
Pulkit Goyal
py3: conditionalize _winreg import...
r29760 try:
Matt Harbison
windows: suppress pytype warnings for Windows imports and functions...
r44207 import _winreg as winreg # pytype: disable=import-error
Augie Fackler
style: run a patched black on a subset of mercurial...
r43345
Pulkit Goyal
py3: conditionalize _winreg import...
r29760 winreg.CloseKey
except ImportError:
Matt Harbison
windows: suppress pytype warnings for Windows imports and functions...
r44207 # py2 only
import winreg # pytype: disable=import-error
Pulkit Goyal
py3: conditionalize _winreg import...
r29760
Yuya Nishihara
pager: use less as a fallback on Unix...
r32078 # MS-DOS 'more' is the only pager available by default on Windows.
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 fallbackpager = b'more'
Yuya Nishihara
pager: use less as a fallback on Unix...
r32078
Augie Fackler
style: run a patched black on a subset of mercurial...
r43345
Kevin Bullock
scmutil: split platform-specific bits into their own modules...
r18690 def systemrcpath():
'''return default os-specific hgrc search path'''
rcpath = []
Yuya Nishihara
rcutil: directly call win32.executablepath()...
r37113 filename = win32.executablepath()
Kevin Bullock
scmutil: split platform-specific bits into their own modules...
r18690 # Use mercurial.ini found in directory with hg.exe
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 progrc = os.path.join(os.path.dirname(filename), b'mercurial.ini')
Mads Kiilerich
windows: read all global config files, not just the first (issue4491) (BC)...
r26625 rcpath.append(progrc)
Matt Harbison
windows: factor the hgrc directory scan into a function...
r44377
def _processdir(progrcd):
if os.path.isdir(progrcd):
for f, kind in util.listdir(progrcd):
if f.endswith(b'.rc'):
rcpath.append(os.path.join(progrcd, f))
Kevin Bullock
scmutil: split platform-specific bits into their own modules...
r18690 # Use hgrc.d found in directory with hg.exe
Matt Harbison
windows: factor the hgrc directory scan into a function...
r44377 _processdir(os.path.join(os.path.dirname(filename), b'hgrc.d'))
Matt Harbison
windows: add a global equivalent to /etc/mercurial for *.rc processing...
r44403 # treat a PROGRAMDATA directory as equivalent to /etc/mercurial
programdata = encoding.environ.get(b'PROGRAMDATA')
if programdata:
programdata = os.path.join(programdata, b'Mercurial')
_processdir(os.path.join(programdata, b'hgrc.d'))
ini = os.path.join(programdata, b'mercurial.ini')
if os.path.isfile(ini):
rcpath.append(ini)
ini = os.path.join(programdata, b'hgrc')
if os.path.isfile(ini):
rcpath.append(ini)
Matt Harbison
windows: clarify a comment about the hgrc search path...
r44375 # next look for a system rcpath in the registry
Augie Fackler
style: run a patched black on a subset of mercurial...
r43345 value = util.lookupreg(
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 b'SOFTWARE\\Mercurial', None, winreg.HKEY_LOCAL_MACHINE
Augie Fackler
style: run a patched black on a subset of mercurial...
r43345 )
Matt Harbison
windows: don't return early from building the hgrc search path...
r44376 if value and isinstance(value, bytes):
value = util.localpath(value)
for p in value.split(pycompat.ospathsep):
if p.lower().endswith(b'mercurial.ini'):
rcpath.append(p)
Matt Harbison
windows: factor the hgrc directory scan into a function...
r44377 else:
_processdir(p)
Kevin Bullock
scmutil: split platform-specific bits into their own modules...
r18690 return rcpath
Augie Fackler
style: run a patched black on a subset of mercurial...
r43345
Kevin Bullock
scmutil: split platform-specific bits into their own modules...
r18690 def userrcpath():
'''return os-specific hgrc search path to the user dir'''
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 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')
Mads Kiilerich
config: don't read the same config file twice...
r22583 if userprofile and userprofile != home:
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 path.append(os.path.join(userprofile, b'mercurial.ini'))
path.append(os.path.join(userprofile, b'.hgrc'))
Kevin Bullock
scmutil: split platform-specific bits into their own modules...
r18690 return path
Yuya Nishihara
scmutil: move util.termwidth()...
r30309
Augie Fackler
style: run a patched black on a subset of mercurial...
r43345
Yuya Nishihara
scmutil: extend termwidth() to return terminal height, renamed to termsize()...
r30314 def termsize(ui):
return win32.termsize()