##// END OF EJS Templates
http: allow 'auth.prefix' to have a username consistent with the URI...
http: allow 'auth.prefix' to have a username consistent with the URI It may be a little weird to put a username in the prefix, but the documentation doesn't disallow it, and silently disallowing it has caused confusion[1]. The username must match what is passed in (which seems to be from the URI via a circuitous route), as well as 'auth.username' if it was specified. I thought about printing a warning for a mismatch, but we already don't print a warning if the 'auth.username' and URI username don't match. This change allows the first and second last new test cases to work as expected. It looks like this would have been a problem since at least 0593e8f81c71. [1] https://www.mercurial-scm.org/pipermail/mercurial/2018-November/051069.html

File last commit:

r39331:3a60416c default
r40699:c53f0ead default
Show More
commitextras.py
72 lines | 2.1 KiB | text/x-python | PythonLexer
Pulkit Goyal
commitextras: move fb extension to core which add extras to a commit...
r33546 # commitextras.py
#
# Copyright 2013 Facebook, Inc.
#
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
Pulkit Goyal
commitextras: mark the extension as ADVANCED
r33562 '''adds a new flag extras to commit (ADVANCED)'''
Pulkit Goyal
commitextras: move fb extension to core which add extras to a commit...
r33546
from __future__ import absolute_import
Pulkit Goyal
commitextras: make sure keys contains ascii letters, numbers, '_' and '-' only
r33603 import re
Pulkit Goyal
commitextras: move fb extension to core which add extras to a commit...
r33546 from mercurial.i18n import _
from mercurial import (
commands,
Pulkit Goyal
commitextras: check the format of the arguments and no internal key is used...
r33547 error,
Pulkit Goyal
commitextras: move fb extension to core which add extras to a commit...
r33546 extensions,
registrar,
Valentin Gatien-Baron
commitextras: work nicely with other extensions...
r39330 util,
Pulkit Goyal
commitextras: move fb extension to core which add extras to a commit...
r33546 )
cmdtable = {}
command = registrar.command(cmdtable)
testedwith = 'ships-with-hg-core'
Pulkit Goyal
commitextras: check the format of the arguments and no internal key is used...
r33547 usedinternally = {
'amend_source',
'branch',
'close',
'histedit_source',
'topic',
'rebase_source',
'intermediate-source',
'__touch-noise__',
'source',
'transplant_source',
}
Pulkit Goyal
commitextras: move fb extension to core which add extras to a commit...
r33546 def extsetup(ui):
entry = extensions.wrapcommand(commands.table, 'commit', _commit)
options = entry[1]
options.append(('', 'extra', [],
_('set a changeset\'s extra values'), _("KEY=VALUE")))
def _commit(orig, ui, repo, *pats, **opts):
Valentin Gatien-Baron
commitextras: work nicely with other extensions...
r39330 if util.safehasattr(repo, 'unfiltered'):
repo = repo.unfiltered()
class repoextra(repo.__class__):
def commit(self, *innerpats, **inneropts):
Pulkit Goyal
py3: handle keyword arguments in hgext/commitextras.py...
r34976 extras = opts.get(r'extra')
Valentin Gatien-Baron
commitextras: no need to special case extras=[]...
r39331 for raw in extras:
if '=' not in raw:
msg = _("unable to parse '%s', should follow "
"KEY=VALUE format")
raise error.Abort(msg % raw)
k, v = raw.split('=', 1)
if not k:
msg = _("unable to parse '%s', keys can't be empty")
raise error.Abort(msg % raw)
if re.search('[^\w-]', k):
msg = _("keys can only contain ascii letters, digits,"
" '_' and '-'")
raise error.Abort(msg)
if k in usedinternally:
msg = _("key '%s' is used internally, can't be set "
"manually")
raise error.Abort(msg % k)
inneropts[r'extra'][k] = v
Valentin Gatien-Baron
commitextras: work nicely with other extensions...
r39330 return super(repoextra, self).commit(*innerpats, **inneropts)
repo.__class__ = repoextra
return orig(ui, repo, *pats, **opts)