Jeff, Did you not like the patch below for some reason ? It seemed fairly straightforward to me that guilt-pop and guilt-push should exit failure if they did not do anything due to having nothing to do. On Mon, 29 Sep 2008, Scott Moser wrote: > currently guilt-pop and guilt-push will exit with '0' if there are no more > relevant patches in the series (ie, if you've pushed or popped all of them) > > This means that you cannot do something like: > while guilt-push; do > guilt refresh || break > done > > for reference, quilt does exit with non-zero in those cases: > $ quilt push -a && quilt push > File series fully applied, ends at patch my.patch > $ echo $? > 1 > > $ quilt pop -a; quilt pop > No patch removed > $ echo $? > 2 > > Signed-off-by: Scott Moser <smoser@xxxxxxxxxxxx> > --- > guilt-pop | 3 +-- > guilt-push | 43 ++++++++++++++++++++++++------------------- > regression/t-021.out | 3 +++ > 3 files changed, 28 insertions(+), 21 deletions(-) > > diff --git a/guilt-pop b/guilt-pop > index db8473e..8a83fdb 100755 > --- a/guilt-pop > +++ b/guilt-pop > @@ -45,8 +45,7 @@ patch="$1" > [ ! -z "$all" ] && patch="-a" > > if [ ! -s "$applied" ]; then > - disp "No patches applied." > - exit 0 > + die "No patches applied." > elif [ "$patch" = "-a" ]; then > # we are supposed to pop all patches > > diff --git a/guilt-push b/guilt-push > index 018f9ac..48f886b 100755 > --- a/guilt-push > +++ b/guilt-push > @@ -97,22 +97,27 @@ fi > sidx=`wc -l < $applied` > sidx=`expr $sidx + 1` > > -get_series | sed -n -e "${sidx},${eidx}p" | while read p > -do > - disp "Applying patch..$p" > - if [ ! -f "$GUILT_DIR/$branch/$p" ]; then > - die "Patch $p does not exist. Aborting." > - fi > - > - push_patch "$p" $abort_flag > - > - # bail if necessary > - if [ $? -eq 0 ]; then > - disp "Patch applied." > - elif [ -z "$abort_flag" ]; then > - die "Patch applied with rejects. Fix it up, and refresh." > - else > - die "To force apply this patch, use 'guilt push -f'" > - fi > -done > - > +get_series | sed -n -e "${sidx},${eidx}p" | > + { > + did_patch=0 > + while read p > + do > + disp "Applying patch..$p" > + if [ ! -f "$GUILT_DIR/$branch/$p" ]; then > + die "Patch $p does not exist. Aborting." > + fi > + > + push_patch "$p" $abort_flag > + > + # bail if necessary > + if [ $? -eq 0 ]; then > + disp "Patch applied." > + elif [ -z "$abort_flag" ]; then > + die "Patch applied with rejects. Fix it up, and refresh." > + else > + die "To force apply this patch, use 'guilt push -f'" > + fi > + did_patch=1 > + done > + [ $did_patch -ge 1 ] || die "no patches to apply" > + } > diff --git a/regression/t-021.out b/regression/t-021.out > index cd8ae96..44771cb 100644 > --- a/regression/t-021.out > +++ b/regression/t-021.out > @@ -822,6 +822,7 @@ index 0000000..8baef1b > @@ -0,0 +1 @@ > +abc > % guilt-push --all > +no patches to apply > % guilt-pop -n -1 > Invalid number of patches to pop. > % list_files > @@ -908,6 +909,7 @@ index 0000000..8baef1b > @@ -0,0 +1 @@ > +abc > % guilt-push --all > +no patches to apply > % guilt-pop -n 0 > No patches requested to be removed. > % list_files > @@ -994,6 +996,7 @@ index 0000000..8baef1b > @@ -0,0 +1 @@ > +abc > % guilt-push --all > +no patches to apply > % guilt-pop -n 1 > Now at remove. > % list_files > -- > 1.5.6.3 > > > !DSPAM:48e123ca138521410093335! > > -- 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