[PATCH] histedit: do not check experimental.histediting in extsetup
Pierre-Yves David
pierre-yves.david at ens-lyon.org
Thu Mar 10 10:48:01 EST 2016
On 03/09/2016 03:49 AM, Jun Wu wrote:
> # HG changeset patch
> # User Jun Wu <quark at fb.com>
> # Date 1457490597 0
> # Wed Mar 09 02:29:57 2016 +0000
> # Node ID 4886a03b8b2b779cf9cf69a5dc29a2b4e8b24c52
> # Parent ffd3ac07b1d79dda7f57bd826208fdaf92a76717
> histedit: do not check experimental.histediting in extsetup
>
> chgserver only hashes [extensions] as confighash. It expects extensions to not
> have global side effects depending on configs in {ui,ext}setup. Otherwise,
> if related configs are changed, but the [extensions] section remains same,
> a same chgserver will be reused and the extensions will still have the old
> behavior.
>
> This patch fixes the issue by moving experimental.histediting check out from
> extsetup.
So what is the new way to handle the "ng" action? Do we still have a
global state but a delayed one?
>
> diff --git a/hgext/histedit.py b/hgext/histedit.py
> --- a/hgext/histedit.py
> +++ b/hgext/histedit.py
> @@ -219,6 +219,13 @@
> secondaryactions = set()
> tertiaryactions = set()
> internalactions = set()
> +hiddenactions = set()
> +
> +def _updatehiddenactions(ui):
> + hiddenactions.clear()
> + if not ui.configbool("experimental", "histeditng"):
> + hiddenactions.add('base')
> + hiddenactions.add('b')
>
> def geteditcomment(first, last):
> """ construct the editor comment
> @@ -250,7 +257,8 @@
> sorted(secondaryactions) +
> sorted(tertiaryactions)
> ):
> - addverb(v)
> + if v not in hiddenactions:
> + addverb(v)
> actions.append('')
>
> return ''.join(['# %s\n' % l if l else '#\n'
> @@ -782,6 +790,8 @@
> replacements.append((ich, (n,)))
> return repo[n], replacements
>
> + at action(['base', 'b'],
> + _('checkout changeset and apply further changesets from there'))
> class base(histeditaction):
> def constraints(self):
> return set([_constraints.forceother])
> @@ -1048,6 +1058,7 @@
> state.keep = opts.get('keep', False)
>
> _validateargs(ui, repo, state, freeargs, opts, goal, rules, revs)
> + _updatehiddenactions(ui)
>
> # rebuild state
> if goal == goalcontinue:
> @@ -1321,7 +1332,7 @@
> raise error.ParseError(_('malformed line "%s"') % r)
> verb, rest = r.split(' ', 1)
>
> - if verb not in actiontable:
> + if verb not in actiontable or verb in hiddenactions:
> raise error.ParseError(_('unknown action "%s"') % verb)
>
> action = actiontable[verb].fromrule(state, rest)
> @@ -1581,7 +1592,3 @@
> _("use 'hg histedit --continue' or 'hg histedit --abort'")])
> cmdutil.afterresolvedstates.append(
> ['histedit-state', _('hg histedit --continue')])
> - if ui.configbool("experimental", "histeditng"):
> - globals()['base'] = action(['base', 'b'],
> - _('checkout changeset and apply further changesets from there')
> - )(base)
> _______________________________________________
> Mercurial-devel mailing list
> Mercurial-devel at mercurial-scm.org
> https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel
>
--
Pierre-Yves David
More information about the Mercurial-devel
mailing list