Patchwork [2,of,2,V5] shelve: accept '--edit' like other commands creating new changeset

login
register
mail settings
Submitter Katsunori FUJIWARA
Date June 20, 2014, 7:19 a.m.
Message ID <9e0e43e566a62730da18.1403248795@feefifofum>
Download mbox | patch
Permalink /patch/5024/
State Accepted
Commit 37a5decc6924d91be190f6e22e3b81f45843072c
Headers show

Comments

Katsunori FUJIWARA - June 20, 2014, 7:19 a.m.
# HG changeset patch
# User FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
# Date 1403248538 -32400
#      Fri Jun 20 16:15:38 2014 +0900
# Node ID 9e0e43e566a62730da181526244f870dd7965468
# Parent  7ed8ff8f8b904e22f8e834810716861755ef5696
shelve: accept '--edit' like other commands creating new changeset

After this patch, users can invoke editor for the commit message by
'--edit' option regardless of '--message'.
Matt Mackall - July 11, 2014, 10:07 p.m.
On Fri, 2014-06-20 at 16:19 +0900, FUJIWARA Katsunori wrote:
> # HG changeset patch
> # User FUJIWARA Katsunori <foozy@lares.dti.ne.jp>
> # Date 1403248538 -32400
> #      Fri Jun 20 16:15:38 2014 +0900
> # Node ID 9e0e43e566a62730da181526244f870dd7965468
> # Parent  7ed8ff8f8b904e22f8e834810716861755ef5696
> shelve: accept '--edit' like other commands creating new changeset

These are queued for default, thanks.

Patch

diff --git a/hgext/shelve.py b/hgext/shelve.py
--- a/hgext/shelve.py
+++ b/hgext/shelve.py
@@ -178,7 +178,8 @@ 
         if hasmq:
             saved, repo.mq.checkapplied = repo.mq.checkapplied, False
         try:
-            return repo.commit(message, user, opts.get('date'), match)
+            return repo.commit(message, user, opts.get('date'), match,
+                               editor=cmdutil.getcommiteditor(**opts))
         finally:
             if hasmq:
                 repo.mq.checkapplied = saved
@@ -635,6 +636,8 @@ 
            _('shelve with the specified commit date'), _('DATE')),
           ('d', 'delete', None,
            _('delete the named shelved change(s)')),
+          ('e', 'edit', False,
+           _('invoke editor on commit messages')),
           ('l', 'list', None,
            _('list current shelves')),
           ('m', 'message', '',
@@ -680,6 +683,7 @@ 
         ('cleanup', 'cleanup'),
 #       ('date', 'create'), # ignored for passing '--date "0 0"' in tests
         ('delete', 'delete'),
+        ('edit', 'create'),
         ('list', 'list'),
         ('message', 'create'),
         ('name', 'create'),
diff --git a/tests/test-shelve.t b/tests/test-shelve.t
--- a/tests/test-shelve.t
+++ b/tests/test-shelve.t
@@ -16,8 +16,10 @@ 
   $ hg addremove -q
 
 shelving in an empty repo should be possible
-
-  $ hg shelve
+(this tests also that editor is not invoked, if '--edit' is not
+specified)
+
+  $ HGEDITOR=cat hg shelve
   shelved as default
   0 files updated, 0 files merged, 5 files removed, 0 files unresolved
 
@@ -132,6 +134,7 @@ 
   [255]
 
 named shelves, specific filenames, and "commit messages" should all work
+(this tests also that editor is invoked, if '--edit' is specified)
 
   $ hg status -C
   M a/a
@@ -140,7 +143,16 @@ 
   A c.copy
     c
   R b/b
-  $ hg shelve -q -n wibble -m wat a
+  $ HGEDITOR=cat hg shelve -q -n wibble -m wat -e a
+  wat
+  
+  
+  HG: Enter commit message.  Lines beginning with 'HG:' are removed.
+  HG: Leave message empty to abort commit.
+  HG: --
+  HG: user: shelve@localhost
+  HG: branch 'default'
+  HG: changed a/a
 
 expect "a" to no longer be present, but status otherwise unchanged