Re: [GUILT v2 26/29] "guilt pop" now fails when there are no more patches to pop.
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
On Tue, May 13, 2014 at 10:31:02PM +0200, Per Cederqvist wrote:
Show 101 quoted lines
> This is analogous to how "guilt push" now fails when there are no more
> patches to push. Like push, the "--all" argument still succeeds even
> if there was no need to pop anything.
>
> Updated the test suite.
>
> Signed-off-by: Per Cederqvist <cederp@opera.com>
> ---
> guilt-pop | 17 +++++++++++------
> regression/t-021.out | 2 ++
> regression/t-021.sh | 6 ++++++
> regression/t-061.sh | 6 +++++-
> 4 files changed, 24 insertions(+), 7 deletions(-)
>
> diff --git a/guilt-pop b/guilt-pop
> index f0e647f..191313e 100755
> --- a/guilt-pop
> +++ b/guilt-pop
> @@ -49,9 +49,19 @@ fi
> patch="$1"
> [ ! -z "$all" ] && patch="-a"
>
> +# Treat "guilt pop" as "guilt pop -n 1".
> +if [ -z "$patch" ]; then
> + patch=1
> + num=t
> +fi
> +
> if [ ! -s "$applied" ]; then
> disp "No patches applied."
> - exit 0
> + if [ "$patch" = "-a" ]; then
> + exit 0
> + else
> + exit 1
> + fi
> elif [ "$patch" = "-a" ]; then
> # we are supposed to pop all patches
>
> @@ -68,11 +78,6 @@ elif [ ! -z "$num" ]; then
> # catch underflow
> [ $eidx -lt 0 ] && eidx=0
> [ $eidx -eq $sidx ] && die "No patches requested to be removed."
> -elif [ -z "$patch" ]; then
> - # we are supposed to pop only the current patch on the stack
> -
> - sidx=`wc -l < "$applied"`
> - eidx=`expr $sidx - 1`
> else
> # we're supposed to pop only up to a patch, make sure the patch is
> # in the series
> diff --git a/regression/t-021.out b/regression/t-021.out
> index 9b42d9c..58be12f 100644
> --- a/regression/t-021.out
> +++ b/regression/t-021.out
> @@ -287,6 +287,8 @@ index 0000000..8baef1b
> +++ b/def
> @@ -0,0 +1 @@
> +abc
> +% guilt pop
> +No patches applied.
> % guilt push --all
> Applying patch..modify
> Patch applied.
> diff --git a/regression/t-021.sh b/regression/t-021.sh
> index 614e870..e0d2dc1 100755
> --- a/regression/t-021.sh
> +++ b/regression/t-021.sh
> @@ -23,6 +23,12 @@ guilt series | _tac | while read n ; do
> done
>
> #
> +# pop when there is nothing to pop
> +#
> +
> +shouldfail guilt pop
> +
> +#
> # push all
> #
> cmd guilt push --all
> diff --git a/regression/t-061.sh b/regression/t-061.sh
> index 1411baa..6192f1b 100755
> --- a/regression/t-061.sh
> +++ b/regression/t-061.sh
> @@ -48,7 +48,11 @@ cmd list_files
>
> for i in `seq 5`
> do
> - cmd guilt pop
> + if [ $i -ge 5 ]; then
> + shouldfail guilt pop
> + else
> + cmd guilt pop
> + fi
> cmd git for-each-ref
> cmd guilt push
> cmd git for-each-ref
> --
> 1.8.3.1
>
--
Linux, n.:
Generous programmers from around the world all join forces to help
you shoot yourself in the foot for free.