# HG changeset patch # User Mads Kiilerich # Date 1395193514 -3600 # Node ID 49f2d5644f04c6675d9d2e08eceaffd9c1ff2f38 # Parent d19c9bdbbf35541fd50787d4b3f9081f3527bb1d 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. diff -r d19c9bdbbf35 -r 49f2d5644f04 hgext/eol.py --- 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__): diff -r d19c9bdbbf35 -r 49f2d5644f04 hgext/histedit.py --- 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) diff -r d19c9bdbbf35 -r 49f2d5644f04 hgext/keyword.py --- 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) diff -r d19c9bdbbf35 -r 49f2d5644f04 hgext/largefiles/reposetup.py --- 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') diff -r d19c9bdbbf35 -r 49f2d5644f04 hgext/mq.py --- 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: diff -r d19c9bdbbf35 -r 49f2d5644f04 hgext/pager.py --- 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) diff -r d19c9bdbbf35 -r 49f2d5644f04 hgext/patchbomb.py --- 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: diff -r d19c9bdbbf35 -r 49f2d5644f04 hgext/rebase.py --- 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, diff -r d19c9bdbbf35 -r 49f2d5644f04 mercurial/bundlerepo.py --- 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 diff -r d19c9bdbbf35 -r 49f2d5644f04 mercurial/cmdutil.py --- 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) diff -r d19c9bdbbf35 -r 49f2d5644f04 mercurial/commands.py --- 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: diff -r d19c9bdbbf35 -r 49f2d5644f04 mercurial/hg.py --- 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 diff -r d19c9bdbbf35 -r 49f2d5644f04 mercurial/hgweb/hgweb_mod.py --- 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 diff -r d19c9bdbbf35 -r 49f2d5644f04 mercurial/hgweb/hgwebdir_mod.py --- 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'} diff -r d19c9bdbbf35 -r 49f2d5644f04 mercurial/subrepo.py --- 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) diff -r d19c9bdbbf35 -r 49f2d5644f04 mercurial/unionrepo.py --- 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))