##// END OF EJS Templates
config: add a function to insert non-file based, but overridable settings...
config: add a function to insert non-file based, but overridable settings This will be used in the next patch. Until relatively recently (473510bf0575), there was no official way for extensions to inject per-repo config data, so it probably makes sense that `ui.setconfig()` items are sticky, and not affected by loading more config files. But that makes it cumbersome if the extension wants to allow the data it might add to be overridden by any data in the local hgrc file. The only thing I could get to work was to load the local hgrc first, and then check if the source for the config item that should be overridden was *not* the local hgrc file name. But that's brittle because in addition to the file name, the source contains the line number, there are the usual '\' vs '/' platform differences, etc. Differential Revision: https://phab.mercurial-scm.org/D7933

File last commit:

r43347:687b865b default
r44585:e2278581 default
Show More
txnutil.py
36 lines | 1.0 KiB | text/x-python | PythonLexer
FUJIWARA Katsunori
txnutil: factor out the logic to read file in according to HG_PENDING...
r31050 # txnutil.py - transaction related utilities
#
# Copyright FUJIWARA Katsunori <foozy@lares.dti.ne.jp> and others
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from __future__ import absolute_import
import errno
Augie Fackler
formatting: blacken the codebase...
r43346 from . import encoding
FUJIWARA Katsunori
txnutil: factor out the logic to read file in according to HG_PENDING...
r31050
def mayhavepending(root):
'''return whether 'root' may have pending changes, which are
visible to this process.
'''
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 return root == encoding.environ.get(b'HG_PENDING')
FUJIWARA Katsunori
txnutil: factor out the logic to read file in according to HG_PENDING...
r31050
Augie Fackler
formatting: blacken the codebase...
r43346
FUJIWARA Katsunori
txnutil: factor out the logic to read file in according to HG_PENDING...
r31050 def trypending(root, vfs, filename, **kwargs):
'''Open file to be read according to HG_PENDING environment variable
This opens '.pending' of specified 'filename' only when HG_PENDING
is equal to 'root'.
This returns '(fp, is_pending_opened)' tuple.
'''
if mayhavepending(root):
try:
Augie Fackler
formatting: byteify all mercurial/ and hgext/ string literals...
r43347 return (vfs(b'%s.pending' % filename, **kwargs), True)
FUJIWARA Katsunori
txnutil: factor out the logic to read file in according to HG_PENDING...
r31050 except IOError as inst:
if inst.errno != errno.ENOENT:
raise
return (vfs(filename, **kwargs), False)