Mercurial > hg-stable
changeset 45946:f177fcd9cb96
helptext: byteify extensions examples
Make it easier on the copy/paste crowd. I haven't looked at the other help text
to see if there are other instances; I was just looking to confirm `buglink` is
meant to be bytes and this popped up along with the code.
Differential Revision: https://phab.mercurial-scm.org/D9367
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Sun, 22 Nov 2020 14:55:40 -0500 |
parents | cb728894f91d |
children | bd22900e26ac |
files | mercurial/helptext/internals/extensions.txt |
diffstat | 1 files changed, 18 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/helptext/internals/extensions.txt Sun Nov 22 14:53:17 2020 -0500 +++ b/mercurial/helptext/internals/extensions.txt Sun Nov 22 14:55:40 2020 -0500 @@ -24,7 +24,8 @@ To write your own extension, your python module can provide an optional dict named ``cmdtable`` with entries describing each command. A command should be -registered to the ``cmdtable`` by ``@command`` decorator. +registered to the ``cmdtable`` by ``@command`` decorator. All string-like +values must be the ``bytes`` type, and are thus prefixed with ``b``. Example using ``@command`` decorator (requires Mercurial 1.9):: @@ -39,10 +40,10 @@ from mercurial import cmdutil command = cmdutil.command(cmdtable) - @command('print-parents', - [('s', 'short', None, _('print short form')), - ('l', 'long', None, _('print long form'))], - _('[options] node')) + @command(b'print-parents', + [(b's', b'short', None, _(b'print short form')), + (b'l', b'long', None, _(b'print long form'))], + _(b'[options] node')) def printparents(ui, repo, node, **opts): ... @@ -84,7 +85,7 @@ ``repo`` passed, then ``norepo=True`` should be passed to the ``@command`` decorator:: - @command('mycommand', [], norepo=True) + @command(b'mycommand', [], norepo=True) def mycommand(ui, **opts): ... @@ -140,7 +141,7 @@ =========================== Besides the ``ui`` methods, like ``ui.write(*msg)`` or -``ui.prompt(msg, default="y")``, an extension can add help text for each +``ui.prompt(msg, default=b"y")``, an extension can add help text for each of its commands and the extension itself. The module docstring will be used as help string when ``hg help extensionname`` @@ -248,7 +249,7 @@ class echologui(ui.__class__): def log(self, service, *msg, **opts): if msg: - self.write('%s: %s\n' % (service, msg[0] % msg[1:])) + self.write(b'%s: %s\n' % (service, msg[0] % msg[1:])) super(echologui, self).log(service, *msg, **opts) ui.__class__ = echologui @@ -259,7 +260,7 @@ Some extensions must use hooks to do their work. These required hooks can be configured manually by the user by modifying the ``[hook]`` section of their hgrc, but they can also be configured automatically by calling the -``ui.setconfig('hooks', ...)`` function in one of the setup functions +``ui.setconfig(b'hooks', ...)`` function in one of the setup functions described above. The main difference between manually modifying the hooks section in the hgrc @@ -273,21 +274,21 @@ # Define hooks -- note that the actual function name it irrelevant. def preupdatehook(ui, repo, **kwargs): - ui.write("Pre-update hook triggered\n") + ui.write(b"Pre-update hook triggered\n") def updatehook(ui, repo, **kwargs): - ui.write("Update hook triggered\n") + ui.write(b"Update hook triggered\n") def uisetup(ui): # When pre-<cmd> and post-<cmd> hooks are configured by means of # the ui.setconfig() function, you must use the ui object passed # to uisetup or extsetup. - ui.setconfig("hooks", "pre-update.myextension", preupdatehook) + ui.setconfig(b"hooks", b"pre-update.myextension", preupdatehook) def reposetup(ui, repo): # Repository-specific hooks can be configured here. These include # the update hook. - ui.setconfig("hooks", "update.myextension", updatehook) + ui.setconfig(b"hooks", b"update.myextension", updatehook) Note how different hooks may need to be configured in different setup functions. In the example you can see that the ``update`` hook must be @@ -301,7 +302,7 @@ releases it's known to be compatible with. This helps us and users diagnose where problems are coming from:: - testedwith = '2.0 2.0.1 2.1 2.1.1 2.1.2' + testedwith = b'2.0 2.0.1 2.1 2.1.1 2.1.2' Do not use the ``internal`` marker in third-party extensions; we will immediately drop all bug reports mentioning your extension if we catch you @@ -311,12 +312,12 @@ should report issues with the extension. This link will be included in the error message if the extension produces errors:: - buglink = 'https://bitbucket.org/USER/REPO/issues' + buglink = b'https://bitbucket.org/USER/REPO/issues' If an extension requires a minimum version of Mercurial, it can be declared with the ``minimumhgversion`` variable:: - minimumhgversion = '4.6' + minimumhgversion = b'4.6' Older clients will print a warning that the extension requires a new version, instead of attempting to load it. @@ -347,7 +348,7 @@ extsetup -------- -* Changes depending on the status of other extensions. (``if extensions.find('mq')``) +* Changes depending on the status of other extensions. (``if extensions.find(b'mq')``) * Add a global option to all commands * Extend revsets