diff -r 325f03de849d -r 95cbc77c0cad hgext/shelve.py --- a/hgext/shelve.py Wed Mar 25 15:52:28 2015 -0700 +++ b/hgext/shelve.py Wed Mar 25 15:53:30 2015 -0700 @@ -228,8 +228,15 @@ raise util.Abort(_("shelved change names may not start with '.'")) interactive = opts.get('interactive', False) - node = cmdutil.commit(ui, repo, commitfunc, pats, opts) - + def interactivecommitfunc(ui, repo, *pats, **opts): + match = scmutil.match(repo['.'], pats, {}) + message = opts['message'] + return commitfunc(ui, repo, message, match, opts) + if not interactive: + node = cmdutil.commit(ui, repo, commitfunc, pats, opts) + else: + node = cmdutil.dorecord(ui, repo, interactivecommitfunc, 'commit', + False, cmdutil.recordfilter, *pats, **opts) if not node: stat = repo.status(match=scmutil.match(repo[None], pats, opts)) if stat.deleted: