config: add --global and --local flags
These start an editor on the system-wide or repository-level config files.
--- a/mercurial/commands.py Tue Mar 18 17:56:27 2014 -0500
+++ b/mercurial/commands.py Tue Mar 18 18:49:30 2014 -0500
@@ -1462,8 +1462,10 @@
@command('config|showconfig|debugconfig',
[('u', 'untrusted', None, _('show untrusted configuration options')),
- ('e', 'edit', None, _('start editor'))],
- _('[-u] [NAME]...'))
+ ('e', 'edit', None, _('edit user config')),
+ ('l', 'local', None, _('edit repository config')),
+ ('g', 'global', None, _('edit global config'))],
+ _('[-u] [NAME]...'))
def config(ui, repo, *values, **opts):
"""show combined config settings from all hgrc files
@@ -1481,8 +1483,19 @@
Returns 0 on success.
"""
- if opts.get('edit'):
- paths = scmutil.userrcpath()
+ if opts.get('edit') or opts.get('local') or opts.get('global'):
+ if opts.get('local') and opts.get('global'):
+ raise util.Abort(_("can't use --local and --global together"))
+
+ if opts.get('local'):
+ if not repo:
+ raise util.Abort(_("can't use --local outside a repository"))
+ paths = [repo.join('hgrc')]
+ elif opts.get('global'):
+ paths = scmutil.systemrcpath()
+ else:
+ paths = scmutil.userrcpath()
+
for f in paths:
if os.path.exists(f):
break
--- a/tests/test-completion.t Tue Mar 18 17:56:27 2014 -0500
+++ b/tests/test-completion.t Tue Mar 18 18:49:30 2014 -0500
@@ -222,7 +222,7 @@
branches: active, closed
bundle: force, rev, branch, base, all, type, ssh, remotecmd, insecure
cat: output, rev, decode, include, exclude
- config: untrusted, edit
+ config: untrusted, edit, local, global
copy: after, force, include, exclude, dry-run
debugancestor:
debugbuilddag: mergeable-file, overwritten-file, new-file