Signed-off-by: Josef 'Jeff' Sipek <jeffpc@xxxxxxxxxxxxxx> On Tue, May 13, 2014 at 10:31:02PM +0200, Per Cederqvist wrote: > 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@xxxxxxxxx> > --- > 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. -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html