config: set a 'source' in most cases where config don't come from file but code
Some extensions set configuration settings that showed up in 'hg showconfig
--debug' with 'none' as source. That was confusing.
Instead, they will now tell which extension they come from.
This change tries to be consistent and specify a source everywhere - also where
it perhaps is less relevant.
--- a/hgext/eol.py Wed Mar 19 02:45:14 2014 +0100
+++ b/hgext/eol.py Wed Mar 19 02:45:14 2014 +0100
@@ -151,7 +151,7 @@
self.cfg = config.config()
# Our files should not be touched. The pattern must be
# inserted first override a '** = native' pattern.
- self.cfg.set('patterns', '.hg*', 'BIN')
+ self.cfg.set('patterns', '.hg*', 'BIN', 'eol')
# We can then parse the user's patterns.
self.cfg.parse('.hgeol', data)
@@ -176,14 +176,14 @@
for pattern, style in self.cfg.items('patterns'):
key = style.upper()
try:
- ui.setconfig('decode', pattern, self._decode[key])
- ui.setconfig('encode', pattern, self._encode[key])
+ ui.setconfig('decode', pattern, self._decode[key], 'eol')
+ ui.setconfig('encode', pattern, self._encode[key], 'eol')
except KeyError:
ui.warn(_("ignoring unknown EOL style '%s' from %s\n")
% (style, self.cfg.source('patterns', pattern)))
# eol.only-consistent can be specified in ~/.hgrc or .hgeol
for k, v in self.cfg.items('eol'):
- ui.setconfig('eol', k, v)
+ ui.setconfig('eol', k, v, 'eol')
def checkrev(self, repo, ctx, files):
failed = []
@@ -261,7 +261,7 @@
return False
def uisetup(ui):
- ui.setconfig('hooks', 'preupdate.eol', preupdate)
+ ui.setconfig('hooks', 'preupdate.eol', preupdate, 'eol')
def extsetup(ui):
try:
@@ -280,7 +280,7 @@
for name, fn in filters.iteritems():
repo.adddatafilter(name, fn)
- ui.setconfig('patch', 'eol', 'auto')
+ ui.setconfig('patch', 'eol', 'auto', 'eol')
class eolrepo(repo.__class__):
--- a/hgext/histedit.py Wed Mar 19 02:45:14 2014 +0100
+++ b/hgext/histedit.py Wed Mar 19 02:45:14 2014 +0100
@@ -198,7 +198,8 @@
def commitfunc(**kwargs):
phasebackup = repo.ui.backupconfig('phases', 'new-commit')
try:
- repo.ui.setconfig('phases', 'new-commit', phasemin)
+ repo.ui.setconfig('phases', 'new-commit', phasemin,
+ 'histedit')
extra = kwargs.get('extra', {}).copy()
extra['histedit_source'] = src.hex()
kwargs['extra'] = extra
@@ -220,11 +221,12 @@
else:
try:
# ui.forcemerge is an internal variable, do not document
- repo.ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
+ repo.ui.setconfig('ui', 'forcemerge', opts.get('tool', ''),
+ 'histedit')
stats = mergemod.update(repo, ctx.node(), True, True, False,
ctx.p1().node())
finally:
- repo.ui.setconfig('ui', 'forcemerge', '')
+ repo.ui.setconfig('ui', 'forcemerge', '', 'histedit')
repo.setparents(wcpar, node.nullid)
repo.dirstate.write()
# fix up dirstate for copies and renames
@@ -375,7 +377,7 @@
phasebackup = repo.ui.backupconfig('phases', 'new-commit')
try:
phasemin = max(ctx.phase(), oldctx.phase())
- repo.ui.setconfig('phases', 'new-commit', phasemin)
+ repo.ui.setconfig('phases', 'new-commit', phasemin, 'histedit')
n = collapse(repo, ctx, repo[newnode], commitopts)
finally:
repo.ui.restoreconfig(phasebackup)
--- a/hgext/keyword.py Wed Mar 19 02:45:14 2014 +0100
+++ b/hgext/keyword.py Wed Mar 19 02:45:14 2014 +0100
@@ -385,10 +385,10 @@
tmpdir = tempfile.mkdtemp('', 'kwdemo.')
ui.note(_('creating temporary repository at %s\n') % tmpdir)
repo = localrepo.localrepository(repo.baseui, tmpdir, True)
- ui.setconfig('keyword', fn, '')
+ ui.setconfig('keyword', fn, '', 'keyword')
svn = ui.configbool('keywordset', 'svn')
# explicitly set keywordset for demo output
- ui.setconfig('keywordset', 'svn', svn)
+ ui.setconfig('keywordset', 'svn', svn, 'keyword')
uikwmaps = ui.configitems('keywordmaps')
if args or opts.get('rcfile'):
@@ -419,7 +419,7 @@
if uikwmaps:
ui.status(_('\tdisabling current template maps\n'))
for k, v in kwmaps.iteritems():
- ui.setconfig('keywordmaps', k, v)
+ ui.setconfig('keywordmaps', k, v, 'keyword')
else:
ui.status(_('\n\tconfiguration using current keyword template maps\n'))
if uikwmaps:
@@ -445,7 +445,7 @@
wlock.release()
for name, cmd in ui.configitems('hooks'):
if name.split('.', 1)[0].find('commit') > -1:
- repo.ui.setconfig('hooks', name, '')
+ repo.ui.setconfig('hooks', name, '', 'keyword')
msg = _('hg keyword configuration and expansion example')
ui.note(("hg ci -m '%s'\n" % msg))
repo.commit(text=msg)
--- a/hgext/largefiles/reposetup.py Wed Mar 19 02:45:14 2014 +0100
+++ b/hgext/largefiles/reposetup.py Wed Mar 19 02:45:14 2014 +0100
@@ -510,5 +510,6 @@
repo.requirements.add('largefiles')
repo._writerequirements()
- ui.setconfig('hooks', 'changegroup.lfiles', checkrequireslfiles)
- ui.setconfig('hooks', 'commit.lfiles', checkrequireslfiles)
+ ui.setconfig('hooks', 'changegroup.lfiles', checkrequireslfiles,
+ 'largefiles')
+ ui.setconfig('hooks', 'commit.lfiles', checkrequireslfiles, 'largefiles')
--- a/hgext/mq.py Wed Mar 19 02:45:14 2014 +0100
+++ b/hgext/mq.py Wed Mar 19 02:45:14 2014 +0100
@@ -304,7 +304,7 @@
backup = repo.ui.backupconfig('phases', 'new-commit')
try:
if phase is not None:
- repo.ui.setconfig('phases', 'new-commit', phase)
+ repo.ui.setconfig('phases', 'new-commit', phase, 'mq')
return repo.commit(*args, **kwargs)
finally:
if phase is not None:
--- a/hgext/pager.py Wed Mar 19 02:45:14 2014 +0100
+++ b/hgext/pager.py Wed Mar 19 02:45:14 2014 +0100
@@ -129,8 +129,8 @@
if (always or auto and
(cmd in attend or
(cmd not in ignore and not attend))):
- ui.setconfig('ui', 'formatted', ui.formatted())
- ui.setconfig('ui', 'interactive', False)
+ ui.setconfig('ui', 'formatted', ui.formatted(), 'pager')
+ ui.setconfig('ui', 'interactive', False, 'pager')
if util.safehasattr(signal, "SIGPIPE"):
signal.signal(signal.SIGPIPE, signal.SIG_DFL)
_runpager(ui, p)
--- a/hgext/patchbomb.py Wed Mar 19 02:45:14 2014 +0100
+++ b/hgext/patchbomb.py Wed Mar 19 02:45:14 2014 +0100
@@ -546,11 +546,11 @@
if not sendmail:
verifycert = ui.config('smtp', 'verifycert')
if opts.get('insecure'):
- ui.setconfig('smtp', 'verifycert', 'loose')
+ ui.setconfig('smtp', 'verifycert', 'loose', 'patchbomb')
try:
sendmail = mail.connect(ui, mbox=mbox)
finally:
- ui.setconfig('smtp', 'verifycert', verifycert)
+ ui.setconfig('smtp', 'verifycert', verifycert, 'patchbomb')
ui.status(_('sending '), subj, ' ...\n')
ui.progress(_('sending'), i, item=subj, total=len(msgs))
if not mbox:
--- a/hgext/rebase.py Wed Mar 19 02:45:14 2014 +0100
+++ b/hgext/rebase.py Wed Mar 19 02:45:14 2014 +0100
@@ -330,14 +330,15 @@
repo.ui.debug('resuming interrupted rebase\n')
else:
try:
- ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
+ ui.setconfig('ui', 'forcemerge', opts.get('tool', ''),
+ 'rebase')
stats = rebasenode(repo, rev, p1, state, collapsef)
if stats and stats[3] > 0:
raise error.InterventionRequired(
_('unresolved conflicts (see hg '
'resolve, then hg rebase --continue)'))
finally:
- ui.setconfig('ui', 'forcemerge', '')
+ ui.setconfig('ui', 'forcemerge', '', 'rebase')
cmdutil.duplicatecopies(repo, rev, target)
if not collapsef:
newrev = concludenode(repo, rev, p1, p2, extrafn=extrafn,
--- a/mercurial/bundlerepo.py Wed Mar 19 02:45:14 2014 +0100
+++ b/mercurial/bundlerepo.py Wed Mar 19 02:45:14 2014 +0100
@@ -193,7 +193,7 @@
self._tempparent = tempfile.mkdtemp()
localrepo.instance(ui, self._tempparent, 1)
localrepo.localrepository.__init__(self, ui, self._tempparent)
- self.ui.setconfig('phases', 'publish', False)
+ self.ui.setconfig('phases', 'publish', False, 'bundlerepo')
if path:
self._url = 'bundle:' + util.expandpath(path) + '+' + bundlename
--- a/mercurial/cmdutil.py Wed Mar 19 02:45:14 2014 +0100
+++ b/mercurial/cmdutil.py Wed Mar 19 02:45:14 2014 +0100
@@ -1982,10 +1982,10 @@
commitphase = 'secret'
else:
commitphase = old.phase()
- repo.ui.setconfig('phases', 'new-commit', commitphase)
+ repo.ui.setconfig('phases', 'new-commit', commitphase, 'amend')
newid = repo.commitctx(new)
finally:
- repo.ui.setconfig('phases', 'new-commit', ph)
+ repo.ui.setconfig('phases', 'new-commit', ph, 'amend')
if newid != old.node():
# Reroute the working copy parent to the new changeset
repo.setparents(newid, nullid)
--- a/mercurial/commands.py Wed Mar 19 02:45:14 2014 +0100
+++ b/mercurial/commands.py Wed Mar 19 02:45:14 2014 +0100
@@ -465,7 +465,8 @@
rctx = scmutil.revsingle(repo, hex(parent))
if not opts.get('merge') and op1 != node:
try:
- ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
+ ui.setconfig('ui', 'forcemerge', opts.get('tool', ''),
+ 'backout')
stats = mergemod.update(repo, parent, True, True, False,
node, False)
repo.setparents(op1, op2)
@@ -479,7 +480,7 @@
ui.status(msg % short(node))
return stats[3] > 0
finally:
- ui.setconfig('ui', 'forcemerge', '')
+ ui.setconfig('ui', 'forcemerge', '', '')
else:
hg.clean(repo, node, show_stats=False)
repo.dirstate.setbranch(branch)
@@ -507,10 +508,11 @@
ui.status(_('merging with changeset %s\n')
% nice(repo.changelog.tip()))
try:
- ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
+ ui.setconfig('ui', 'forcemerge', opts.get('tool', ''),
+ 'backout')
return hg.merge(repo, hex(repo.changelog.tip()))
finally:
- ui.setconfig('ui', 'forcemerge', '')
+ ui.setconfig('ui', 'forcemerge', '', '')
finally:
wlock.release()
return 0
@@ -1361,7 +1363,7 @@
if opts.get('amend'):
raise util.Abort(_('cannot amend with --subrepos'))
# Let --subrepos on the command line override config setting.
- ui.setconfig('ui', 'commitsubrepos', True)
+ ui.setconfig('ui', 'commitsubrepos', True, 'commit')
# Save this for restoring it later
oldcommitphase = ui.config('phases', 'new-commit')
@@ -1436,15 +1438,17 @@
def commitfunc(ui, repo, message, match, opts):
try:
if opts.get('secret'):
- ui.setconfig('phases', 'new-commit', 'secret')
+ ui.setconfig('phases', 'new-commit', 'secret', 'commit')
# Propagate to subrepos
- repo.baseui.setconfig('phases', 'new-commit', 'secret')
+ repo.baseui.setconfig('phases', 'new-commit', 'secret',
+ 'commit')
return repo.commit(message, opts.get('user'), opts.get('date'),
match, editor=e, extra=extra)
finally:
- ui.setconfig('phases', 'new-commit', oldcommitphase)
- repo.baseui.setconfig('phases', 'new-commit', oldcommitphase)
+ ui.setconfig('phases', 'new-commit', oldcommitphase, 'commit')
+ repo.baseui.setconfig('phases', 'new-commit', oldcommitphase,
+ 'commit')
node = cmdutil.commit(ui, repo, commitfunc, pats, opts)
@@ -3196,11 +3200,12 @@
# perform the graft merge with p1(rev) as 'ancestor'
try:
# ui.forcemerge is an internal variable, do not document
- repo.ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
+ repo.ui.setconfig('ui', 'forcemerge', opts.get('tool', ''),
+ 'graft')
stats = mergemod.update(repo, ctx.node(), True, True, False,
ctx.p1().node())
finally:
- repo.ui.setconfig('ui', 'forcemerge', '')
+ repo.ui.setconfig('ui', 'forcemerge', '', 'graft')
# report any conflicts
if stats and stats[3] > 0:
# write out state for --continue
@@ -4325,10 +4330,10 @@
try:
# ui.forcemerge is an internal variable, do not document
- repo.ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
+ repo.ui.setconfig('ui', 'forcemerge', opts.get('tool', ''), 'merge')
return hg.merge(repo, node, force=opts.get('force'))
finally:
- ui.setconfig('ui', 'forcemerge', '')
+ ui.setconfig('ui', 'forcemerge', '', 'merge')
@command('outgoing|out',
[('f', 'force', None, _('run even when the destination is unrelated')),
@@ -4708,7 +4713,7 @@
"""
if opts.get('bookmark'):
- ui.setconfig('bookmarks', 'pushing', opts['bookmark'])
+ ui.setconfig('bookmarks', 'pushing', opts['bookmark'], 'push')
for b in opts['bookmark']:
# translate -B options to -r so changesets get pushed
if b in repo._bookmarks:
@@ -4984,11 +4989,12 @@
try:
# resolve file
- ui.setconfig('ui', 'forcemerge', opts.get('tool', ''))
+ ui.setconfig('ui', 'forcemerge', opts.get('tool', ''),
+ 'resolve')
if ms.resolve(f, wctx):
ret = 1
finally:
- ui.setconfig('ui', 'forcemerge', '')
+ ui.setconfig('ui', 'forcemerge', '', 'resolve')
ms.commit()
# replace filemerge's .orig file with our resolve file
@@ -5205,9 +5211,9 @@
val = opts.get(o, '')
if val in (None, ''): # should check against default options instead
continue
- baseui.setconfig("web", o, val)
+ baseui.setconfig("web", o, val, 'serve')
if repo and repo.ui != baseui:
- repo.ui.setconfig("web", o, val)
+ repo.ui.setconfig("web", o, val, 'serve')
o = opts.get('web_conf') or opts.get('webdir_conf')
if not o:
--- a/mercurial/hg.py Wed Mar 19 02:45:14 2014 +0100
+++ b/mercurial/hg.py Wed Mar 19 02:45:14 2014 +0100
@@ -405,7 +405,7 @@
fp.write("default = %s\n" % defaulturl)
fp.close()
- destrepo.ui.setconfig('paths', 'default', defaulturl)
+ destrepo.ui.setconfig('paths', 'default', defaulturl, 'clone')
if update:
if update is not True:
@@ -613,19 +613,19 @@
for o in 'ssh', 'remotecmd':
v = opts.get(o) or src.config('ui', o)
if v:
- dst.setconfig("ui", o, v)
+ dst.setconfig("ui", o, v, 'copied')
# copy bundle-specific options
r = src.config('bundle', 'mainreporoot')
if r:
- dst.setconfig('bundle', 'mainreporoot', r)
+ dst.setconfig('bundle', 'mainreporoot', r, 'copied')
# copy selected local settings to the remote ui
for sect in ('auth', 'hostfingerprints', 'http_proxy'):
for key, val in src.configitems(sect):
- dst.setconfig(sect, key, val)
+ dst.setconfig(sect, key, val, 'copied')
v = src.config('web', 'cacerts')
if v:
- dst.setconfig('web', 'cacerts', util.expandpath(v))
+ dst.setconfig('web', 'cacerts', util.expandpath(v), 'copied')
return dst
--- a/mercurial/hgweb/hgweb_mod.py Wed Mar 19 02:45:14 2014 +0100
+++ b/mercurial/hgweb/hgweb_mod.py Wed Mar 19 02:45:14 2014 +0100
@@ -64,10 +64,10 @@
r = repo
r = self._getview(r)
- r.ui.setconfig('ui', 'report_untrusted', 'off')
- r.baseui.setconfig('ui', 'report_untrusted', 'off')
- r.ui.setconfig('ui', 'nontty', 'true')
- r.baseui.setconfig('ui', 'nontty', 'true')
+ r.ui.setconfig('ui', 'report_untrusted', 'off', 'hgweb')
+ r.baseui.setconfig('ui', 'report_untrusted', 'off', 'hgweb')
+ r.ui.setconfig('ui', 'nontty', 'true', 'hgweb')
+ r.baseui.setconfig('ui', 'nontty', 'true', 'hgweb')
self.repo = r
hook.redirect(True)
self.mtime = -1
--- a/mercurial/hgweb/hgwebdir_mod.py Wed Mar 19 02:45:14 2014 +0100
+++ b/mercurial/hgweb/hgwebdir_mod.py Wed Mar 19 02:45:14 2014 +0100
@@ -96,8 +96,8 @@
u = self.baseui.copy()
else:
u = ui.ui()
- u.setconfig('ui', 'report_untrusted', 'off')
- u.setconfig('ui', 'nontty', 'true')
+ u.setconfig('ui', 'report_untrusted', 'off', 'hgwebdir')
+ u.setconfig('ui', 'nontty', 'true', 'hgwebdir')
if not isinstance(self.conf, (dict, list, tuple)):
map = {'paths': 'hgweb-paths'}
--- a/mercurial/subrepo.py Wed Mar 19 02:45:14 2014 +0100
+++ b/mercurial/subrepo.py Wed Mar 19 02:45:14 2014 +0100
@@ -512,8 +512,8 @@
for s, k in [('ui', 'commitsubrepos')]:
v = r.ui.config(s, k)
if v:
- self._repo.ui.setconfig(s, k, v)
- self._repo.ui.setconfig('ui', '_usedassubrepo', 'True')
+ self._repo.ui.setconfig(s, k, v, 'subrepo')
+ self._repo.ui.setconfig('ui', '_usedassubrepo', 'True', 'subrepo')
self._initrepo(r, state[0], create)
def storeclean(self, path):
@@ -594,7 +594,7 @@
def addpathconfig(key, value):
if value:
fp.write('%s = %s\n' % (key, value))
- self._repo.ui.setconfig('paths', key, value)
+ self._repo.ui.setconfig('paths', key, value, 'subrepo')
defpath = _abssource(self._repo, abort=False)
defpushpath = _abssource(self._repo, True, abort=False)
--- a/mercurial/unionrepo.py Wed Mar 19 02:45:14 2014 +0100
+++ b/mercurial/unionrepo.py Wed Mar 19 02:45:14 2014 +0100
@@ -170,7 +170,7 @@
class unionrepository(localrepo.localrepository):
def __init__(self, ui, path, path2):
localrepo.localrepository.__init__(self, ui, path)
- self.ui.setconfig('phases', 'publish', False)
+ self.ui.setconfig('phases', 'publish', False, 'unionrepo')
self._url = 'union:%s+%s' % (util.expandpath(path),
util.expandpath(path2))