Mercurial > hg
view hgext/commitextras.py @ 40452:683e99f0b30c stable
relnotes: various tweaks for release notes
Stop filtering out commits that are expected to be covered by releasenotes
extension: now we want two lists, one for WhatsNew and one for ReleaseX.Y.
Use `only(stoprev, startrev)` to make `relnotes -h` output be actually true
about what revisions are included.
More filter rules, mostly obvious.
More classifying rules to have less things in "unsorted".
Looks like nargs=1 was just making args.startrev and args.stoprev be lists for
no reason.
BC and API sections are renamed to what we're using on the WhatsNew page, and
also just skipped if empty.
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Fri, 19 Oct 2018 22:09:53 +0800 |
parents | 3a60416c4fd8 |
children | bd3f03d8cc9f |
line wrap: on
line source
# 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. '''adds a new flag extras to commit (ADVANCED)''' from __future__ import absolute_import import re from mercurial.i18n import _ from mercurial import ( commands, error, extensions, registrar, util, ) cmdtable = {} command = registrar.command(cmdtable) testedwith = 'ships-with-hg-core' usedinternally = { 'amend_source', 'branch', 'close', 'histedit_source', 'topic', 'rebase_source', 'intermediate-source', '__touch-noise__', 'source', 'transplant_source', } 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): if util.safehasattr(repo, 'unfiltered'): repo = repo.unfiltered() class repoextra(repo.__class__): def commit(self, *innerpats, **inneropts): extras = opts.get(r'extra') 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 return super(repoextra, self).commit(*innerpats, **inneropts) repo.__class__ = repoextra return orig(ui, repo, *pats, **opts)