extension: add a `required` suboption to enforce the use of an extensions
If `required` is set, failing to load an extensions will abort. See the test
and documentation for details.
Differential Revision: https://phab.mercurial-scm.org/D11822
# extension to emulate interrupting filemerge._filemerge
from __future__ import absolute_import
from mercurial import (
error,
extensions,
filemerge,
)
def failfilemerge(
filemergefn, premerge, repo, wctx, mynode, orig, fcd, fco, fca, labels=None
):
raise error.Abort(b"^C")
return filemergefn(premerge, repo, mynode, orig, fcd, fco, fca, labels)
def extsetup(ui):
extensions.wrapfunction(filemerge, '_filemerge', failfilemerge)