Re: [GUILT 25/28] "guilt push" now fails when there are no more patches to push.
- From
Per Cederqvist <cederp@opera.com>
- Date
- May 8, 2014, 21:37 UTC
- Message-ID
- <CAP=KgsTSD6Dnh7V8MO3S3ZN45R7QYJfBQBS1x=GajJKdTm9syA@mail.gmail.com>
- In-Reply-To
- <20140507220427.GD1459@meili.valhalla.31bits.net>
On Thu, May 8, 2014 at 12:04 AM, Jeff Sipek <jeffpc@josefsipek.net> wrote:
Show 39 quoted lines
> On Fri, Mar 21, 2014 at 08:32:03AM +0100, Per Cederqvist wrote:
>> 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
> fiOk.
Show 9 quoted lines
> 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.
Will do.
Show 32 quoted lines
> (Note to self, this file is a huge mess and could use a bit of cleanup.) > >> @@ -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?
Yes. Personally, I think that is a good change. It feels strange that "guilt push" silently does nothing when there is no patch to apply.
/ceder
Show 5 quoted lines
>> fi
>>
>> get_series | sed -n -e "${sidx},${eidx}p" | while read p
>
> Jeff.