commit: add a topic field to the in-editor commit text
authorMatt Mackall <mpm@selenic.com>
Wed, 10 Jun 2015 17:52:07 -0500
changeset 1852 3084687f7994
parent 1851 67d53e8e0c1a
child 1853 8db7828751b7
commit: add a topic field to the in-editor commit text
src/topic/__init__.py
tests/test-topic.t
--- a/src/topic/__init__.py	Wed Jun 10 17:40:50 2015 -0500
+++ b/src/topic/__init__.py	Wed Jun 10 17:52:07 2015 -0500
@@ -134,6 +134,14 @@
             f.write(t)
     return orig(ui, repo, *args, **opts)
 
+def committextwrap(orig, repo, ctx, subs, extramsg):
+    ret = orig(repo, ctx, subs, extramsg)
+    t = repo.currenttopic
+    if t:
+        ret = ret.replace("\nHG: branch",
+                          "\nHG: topic '%s'\nHG: branch" % t)
+    return ret
+
 def updatewrap(orig, ui, repo, *args, **kwargs):
     ret = orig(ui, repo, *args, **kwargs)
     pctx = repo['.']
@@ -155,5 +163,6 @@
                  _("use specified topic"), _('TOPIC')))
 
 extensions.wrapcommand(commands.table, 'update', updatewrap)
+extensions.wrapfunction(cmdutil, 'buildcommittext', committextwrap)
 topicrevset.modsetup()
 cmdutil.summaryhooks.add('topic', summaryhook)
--- a/tests/test-topic.t	Wed Jun 10 17:40:50 2015 -0500
+++ b/tests/test-topic.t	Wed Jun 10 17:52:07 2015 -0500
@@ -42,6 +42,25 @@
 Still no topics
   $ hg topics
 
+Test commit flag and help text
+
+  $ echo stuff >> alpha
+  $ HGEDITOR=cat hg ci -t topicflag
+  
+  
+  HG: Enter commit message.  Lines beginning with 'HG:' are removed.
+  HG: Leave message empty to abort commit.
+  HG: --
+  HG: user: test
+  HG: topic 'topicflag'
+  HG: branch 'default'
+  HG: changed alpha
+  abort: empty commit message
+  [255]
+  $ hg revert alpha
+  $ hg topic
+   * topicflag
+
 Make a topic
   $ hg topic narf
   $ hg topics