diff --git a/hgext/githelp.py b/hgext/githelp.py --- a/hgext/githelp.py +++ b/hgext/githelp.py @@ -923,6 +923,7 @@ def stash(ui, repo, *args, **kwargs): cmdoptions = [ + ('p', 'patch', None, ''), ] args, opts = parseoptions(ui, cmdoptions, args) @@ -931,6 +932,17 @@ if action == 'list': cmd['-l'] = None + if opts.get('patch'): + cmd['-p'] = None + elif action == 'show': + if opts.get('patch'): + cmd['-p'] = None + else: + cmd['--stat'] = None + if len(args) > 1: + cmd.append(args[1]) + elif action == 'clear': + cmd['--cleanup'] = None elif action == 'drop': cmd['-d'] = None if len(args) > 1: @@ -943,10 +955,9 @@ cmd.append(args[1]) if action == 'apply': cmd['--keep'] = None - elif (action == 'branch' or action == 'show' or action == 'clear' - or action == 'create'): + elif action == 'branch' or action == 'create': ui.status(_("note: Mercurial doesn't have equivalents to the " - "git stash branch, show, clear, or create actions\n\n")) + "git stash branch or create actions\n\n")) return else: if len(args) > 0: diff --git a/tests/test-githelp.t b/tests/test-githelp.t --- a/tests/test-githelp.t +++ b/tests/test-githelp.t @@ -219,6 +219,22 @@ $ hg githelp -- git stash drop xyz hg shelve -d xyz +githelp for stash list with patch + $ hg githelp -- git stash list -p + hg shelve -l -p + +githelp for stash show + $ hg githelp -- git stash show + hg shelve --stat + +githelp for stash show with patch and name + $ hg githelp -- git stash show -p mystash + hg shelve -p mystash + +githelp for stash clear + $ hg githelp -- git stash clear + hg shelve --cleanup + githelp for whatchanged should show deprecated message $ hg githelp -- whatchanged -p this command has been deprecated in the git project, thus isn't supported by this tool