record: omit meaningless 'commit' suggestion at 'hg commit -i'
authorFUJIWARA Katsunori <foozy@lares.dti.ne.jp>
Wed, 15 Jul 2015 04:45:58 +0900
changeset 25796 4eb8d8a44bf1
parent 25795 69145daacdfa
child 25797 cc9fb45986d4
record: omit meaningless 'commit' suggestion at 'hg commit -i' Before this patch, 'hg commit -i' under non-interactive mode suggests 'use commit instead', and it obviously meaningless. This patch makes 'record.record'()' examine 'ui.interactive()' and show suggestion by itself before calling 'commands.commit()'. This allows 'commands.commit()' to specify 'None' for 'cmdsuggest' argument of 'cmdutil.dorecord()' to omit meaningless 'commit' suggestion at 'hg commit -i'.
hgext/record.py
mercurial/commands.py
tests/test-commit-interactive.t
--- a/hgext/record.py	Wed Jul 15 03:43:16 2015 +0900
+++ b/hgext/record.py	Wed Jul 15 04:45:58 2015 +0900
@@ -53,6 +53,10 @@
 
     This command is not available when committing a merge.'''
 
+    if not ui.interactive():
+        raise util.Abort(_('running non-interactively, use %s instead') %
+                         'commit')
+
     opts["interactive"] = True
     backup = ui.backupconfig('experimental', 'crecord')
     try:
--- a/mercurial/commands.py	Wed Jul 15 03:43:16 2015 +0900
+++ b/mercurial/commands.py	Wed Jul 15 04:45:58 2015 +0900
@@ -1480,7 +1480,7 @@
     """
     if opts.get('interactive'):
         opts.pop('interactive')
-        cmdutil.dorecord(ui, repo, commit, 'commit', False,
+        cmdutil.dorecord(ui, repo, commit, None, False,
                         cmdutil.recordfilter, *pats, **opts)
         return
 
--- a/tests/test-commit-interactive.t	Wed Jul 15 03:43:16 2015 +0900
+++ b/tests/test-commit-interactive.t	Wed Jul 15 04:45:58 2015 +0900
@@ -15,6 +15,12 @@
   $ touch empty-rw
   $ hg add empty-rw
 
+  $ hg record --config ui.interactive=false
+  abort: running non-interactively, use commit instead
+  [255]
+  $ hg commit -i --config ui.interactive=false
+  abort: running non-interactively
+  [255]
   $ hg commit -i empty-rw<<EOF
   > n
   > EOF