Patchwork help: show help for disabled extensions(issue5228)

login
register
mail settings
Submitter Pulkit Goyal
Date Nov. 6, 2016, 1:32 a.m.
Message ID <691d3960ba61d07db8d3.1478395976@pulkit-goyal>
Download mbox | patch
Permalink /patch/17361/
State Superseded
Headers show

Comments

Pulkit Goyal - Nov. 6, 2016, 1:32 a.m.
# HG changeset patch
# User Pulkit Goyal <7895pulkit@gmail.com>
# Date 1478395471 -19800
#      Sun Nov 06 06:54:31 2016 +0530
# Node ID 691d3960ba61d07db8d34f5ca2c148ecb32f4f7c
# Parent  b5fc4e71286dd4f33336e4f38e0b9fb17f51f1e3
help: show help for disabled extensions(issue5228)

This patch does not exactly solve issue5228 but it results in a better
condition on this issue. For disabled extensions, we used to parse the
module and get the first occurences of docstring and then retrun the first
line of that as an introductory heading of extension. This is what we get
today.
This patch returns the whole docstring of the module as a help for extension,
which is more informative. There are some modules which don't have much
docstring at top level except the heading so those are unaffected by this
change. To follow the existing trend of showing commands either we have to
load the extension or have a very ugly parsing method which don't even assure
correctness.
Yuya Nishihara - Nov. 6, 2016, 3:08 a.m.
On Sun, 06 Nov 2016 07:02:56 +0530, Pulkit Goyal wrote:
> # HG changeset patch
> # User Pulkit Goyal <7895pulkit@gmail.com>
> # Date 1478395471 -19800
> #      Sun Nov 06 06:54:31 2016 +0530
> # Node ID 691d3960ba61d07db8d34f5ca2c148ecb32f4f7c
> # Parent  b5fc4e71286dd4f33336e4f38e0b9fb17f51f1e3
> help: show help for disabled extensions(issue5228)

> --- a/mercurial/extensions.py	Sun Nov 06 04:36:26 2016 +0530
> +++ b/mercurial/extensions.py	Sun Nov 06 06:54:31 2016 +0530
> @@ -426,7 +426,7 @@
>          file.close()
>  
>      if doc: # extracting localized synopsis
> -        return gettext(doc).splitlines()[0]
> +        return gettext(doc)
>      else:
>          return _('(no help text available)')
>  
> @@ -446,7 +446,7 @@
>  
>      exts = {}
>      for name, path in paths.iteritems():
> -        doc = _disabledhelp(path)
> +        doc = _disabledhelp(path).splitlines()[0]

_disabledhelp(path) may return None on IOError.

>          if doc:
>              exts[name] = doc

Other than that, the patch looks good to me.
timeless - Nov. 6, 2016, 9:57 a.m.
Pulkit Goyal wrote:
> This patch does not exactly solve issue5228 but it results in a better

If it doesn't solve the issue, should the issue be tagged in the commit summary?
Yuya Nishihara - Nov. 6, 2016, 12:27 p.m.
On Sun, 6 Nov 2016 04:57:03 -0500, timeless wrote:
> Pulkit Goyal wrote:
> > This patch does not exactly solve issue5228 but it results in a better
> 
> If it doesn't solve the issue, should the issue be tagged in the commit summary?

I think this fix is enough to say issue5228 is solved.

Patch

diff -r b5fc4e71286d -r 691d3960ba61 mercurial/extensions.py
--- a/mercurial/extensions.py	Sun Nov 06 04:36:26 2016 +0530
+++ b/mercurial/extensions.py	Sun Nov 06 06:54:31 2016 +0530
@@ -426,7 +426,7 @@ 
         file.close()
 
     if doc: # extracting localized synopsis
-        return gettext(doc).splitlines()[0]
+        return gettext(doc)
     else:
         return _('(no help text available)')
 
@@ -446,7 +446,7 @@ 
 
     exts = {}
     for name, path in paths.iteritems():
-        doc = _disabledhelp(path)
+        doc = _disabledhelp(path).splitlines()[0]
         if doc:
             exts[name] = doc
 
diff -r b5fc4e71286d -r 691d3960ba61 tests/test-extension.t
--- a/tests/test-extension.t	Sun Nov 06 04:36:26 2016 +0530
+++ b/tests/test-extension.t	Sun Nov 06 06:54:31 2016 +0530
@@ -1045,6 +1045,61 @@ 
   $ hg help patchbomb
   patchbomb extension - command to send changesets as (a series of) patch emails
   
+  The series is started off with a "[PATCH 0 of N]" introduction, which
+  describes the series as a whole.
+  
+  Each patch email has a Subject line of "[PATCH M of N] ...", using the first
+  line of the changeset description as the subject text. The message contains
+  two or three body parts:
+  
+  - The changeset description.
+  - [Optional] The result of running diffstat on the patch.
+  - The patch itself, as generated by 'hg export'.
+  
+  Each message refers to the first in the series using the In-Reply-To and
+  References headers, so they will show up as a sequence in threaded mail and
+  news readers, and in mail archives.
+  
+  To configure other defaults, add a section like this to your configuration
+  file:
+  
+    [email]
+    from = My Name <my@email>
+    to = recipient1, recipient2, ...
+    cc = cc1, cc2, ...
+    bcc = bcc1, bcc2, ...
+    reply-to = address1, address2, ...
+  
+  Use "[patchbomb]" as configuration section name if you need to override global
+  "[email]" address settings.
+  
+  Then you can use the 'hg email' command to mail a series of changesets as a
+  patchbomb.
+  
+  You can also either configure the method option in the email section to be a
+  sendmail compatible mailer or fill out the [smtp] section so that the
+  patchbomb extension can automatically send patchbombs directly from the
+  commandline. See the [email] and [smtp] sections in hgrc(5) for details.
+  
+  By default, 'hg email' will prompt for a "To" or "CC" header if you do not
+  supply one via configuration or the command line.  You can override this to
+  never prompt by configuring an empty value:
+  
+    [email]
+    cc =
+  
+  You can control the default inclusion of an introduction message with the
+  "patchbomb.intro" configuration option. The configuration is always
+  overwritten by command line flags like --intro and --desc:
+  
+    [patchbomb]
+    intro=auto   # include introduction message if more than 1 patch (default)
+    intro=never  # never include an introduction message
+    intro=always # always include an introduction message
+  
+  You can set patchbomb to always ask for confirmation by setting
+  "patchbomb.confirm" to true.
+  
   (use 'hg help extensions' for information on enabling extensions)
 
 
diff -r b5fc4e71286d -r 691d3960ba61 tests/test-qrecord.t
--- a/tests/test-qrecord.t	Sun Nov 06 04:36:26 2016 +0530
+++ b/tests/test-qrecord.t	Sun Nov 06 06:54:31 2016 +0530
@@ -9,6 +9,9 @@ 
   record extension - commands to interactively select changes for
   commit/qrefresh (DEPRECATED)
   
+  The feature provided by this extension has been moved into core Mercurial as
+  'hg commit --interactive'.
+  
   (use 'hg help extensions' for information on enabling extensions)
 
 help qrecord (no record)