git-stash: add new 'pop' subcommand

This combines the existing stash subcommands 'apply' and 'drop' to
allow a single stash entry to be applied and then dropped, in other
words 'popped', from the stash list.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Brandon Casey 2008-02-22 16:52:50 -06:00 committed by Junio C Hamano
parent e25d5f9c82
commit bd56ff54f7
2 changed files with 16 additions and 2 deletions

View File

@ -8,7 +8,7 @@ git-stash - Stash the changes in a dirty working directory away
SYNOPSIS SYNOPSIS
-------- --------
[verse] [verse]
'git-stash' (list | show [<stash>] | apply [<stash>] | clear | drop [<stash>]) 'git-stash' (list | show [<stash>] | apply [<stash>] | clear | drop [<stash>] | pop [<stash>])
'git-stash' [save [<message>]] 'git-stash' [save [<message>]]
DESCRIPTION DESCRIPTION
@ -90,6 +90,12 @@ drop [<stash>]::
Remove a single stashed state from the stash list. When no `<stash>` Remove a single stashed state from the stash list. When no `<stash>`
is given, it removes the latest one. i.e. `stash@\{0}` is given, it removes the latest one. i.e. `stash@\{0}`
pop [<stash>]::
Remove a single stashed state from the stash list and apply on top
of the current working tree state. When no `<stash>` is given,
`stash@\{0}` is assumed. See also `apply`.
DISCUSSION DISCUSSION
---------- ----------

View File

@ -1,7 +1,7 @@
#!/bin/sh #!/bin/sh
# Copyright (c) 2007, Nanako Shiraishi # Copyright (c) 2007, Nanako Shiraishi
USAGE='[ | save | list | show | apply | clear | drop | create ]' USAGE='[ | save | list | show | apply | clear | drop | pop | create ]'
SUBDIRECTORY_OK=Yes SUBDIRECTORY_OK=Yes
OPTIONS_SPEC= OPTIONS_SPEC=
@ -256,6 +256,14 @@ drop)
shift shift
drop_stash "$@" drop_stash "$@"
;; ;;
pop)
shift
if apply_stash "$@"
then
test -z "$unstash_index" || shift
drop_stash "$@"
fi
;;
*) *)
if test $# -eq 0 if test $# -eq 0
then then