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'.
--- a/hgext/shelve.py Fri Jun 20 16:15:38 2014 +0900
+++ b/hgext/shelve.py Fri Jun 20 16:15:38 2014 +0900
@@ -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'),
--- a/tests/test-shelve.t Fri Jun 20 16:15:38 2014 +0900
+++ b/tests/test-shelve.t Fri Jun 20 16:15:38 2014 +0900
@@ -16,8 +16,10 @@
$ hg addremove -q
shelving in an empty repo should be possible
+(this tests also that editor is not invoked, if '--edit' is not
+specified)
- $ hg shelve
+ $ 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