Re: [GUILT 25/28] "guilt push" now fails when there are no more patches to push.
- From
- Jeff Sipek <jeffpc@josefsipek.net>
- Date
- May 7, 2014, 22:04 UTC
- Message-ID
- <20140507220427.GD1459@meili.valhalla.31bits.net>
- In-Reply-To
- <1395387126-13681-26-git-send-email-cederp@opera.com>
On Fri, Mar 21, 2014 at 08:32:03AM +0100, Per Cederqvist wrote:
Show 30 quoted lines
> This makes it easier to script operations on the entire queue, for
> example run the test suite on each patch in the queue:
>
> guilt pop -a;while guilt push; do make test||break; done
>
> This brings "guilt push" in line with the push operation in Mercurial
> Queues (hg qpush), which fails when there are no patches to apply.
>
> Updated the test suite.
>
> "guilt push -a" still does not fail. (It successfully manages to
> ensure that all patches are pushed, even if it did not have to do
> anything to make it so.)
>
> Signed-off-by: Per Cederqvist <cederp@opera.com>
> ---
> guilt-push | 14 ++++-----
> regression/t-020.out | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> regression/t-020.sh | 13 +++++++-
> 3 files changed, 108 insertions(+), 8 deletions(-)
>
> diff --git a/guilt-push b/guilt-push
> index 67687e7..2222350 100755
> --- a/guilt-push
> +++ b/guilt-push
> @@ -55,6 +55,7 @@ fi
>
> patch="$1"
> [ ! -z "$all" ] && patch="-a"
> +[ -z "$patch" ] && { patch=1; num=t; }I don't think there's any other place in the repo that does this. Instead you see a lot of if-then-fi. To keep it consistent, I'd suggest:
if [ -z "$patch" ] ; then patch=1 num=t fi
Ah, this took me a while to figure out. The above turns:
$ guilt push
into
$ guilt push -n 1
I'd throw in a comment.
(Note to self, this file is a huge mess and could use a bit of cleanup.)
Show 22 quoted lines
> @@ -78,11 +79,6 @@ elif [ ! -z "$num" ]; then > # clamp to minimum > [ $tidx -lt $eidx ] && eidx=$tidx > > -elif [ -z "$patch" ]; then > - # we are supposed to push only the next patch onto the stack > - > - eidx=`wc -l < "$applied"` > - eidx=`expr $eidx + 1` > else > # we're supposed to push only up to a patch, make sure the patch is > # in the series > @@ -109,7 +105,11 @@ if [ "$sidx" -gt "$eidx" ]; then > else > disp "File series fully applied, ends at patch `get_series | tail -n 1`" > fi > - exit 0 > + if [ -n "$all" ]; then > + exit 0 > + else > + exit 1 > + fi
This changes the output on stdout. E.g.,
$ guilt pu $ guilt pu -n 1 File series fully applied, ends at patch crashdump
With this patch, both will print the message. Right?
> fi
>
> get_series | sed -n -e "${sidx},${eidx}p" | while read pJeff.