[GUILT v4 26/33] "guilt pop" now fails when there are no more patches to pop.

2014-05-18 Thread Per Cederqvist
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 
Signed-off-by: Josef 'Jeff' Sipek 
---
 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 000..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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GUILT v4 25/33] "guilt push" now fails when there are no more patches to push.

2014-05-18 Thread Per Cederqvist
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 
Signed-off-by: Josef 'Jeff' Sipek 
---
 guilt-push   | 19 ++-
 regression/t-020.out | 89 
 regression/t-020.sh  | 13 +++-
 3 files changed, 113 insertions(+), 8 deletions(-)

diff --git a/guilt-push b/guilt-push
index 67687e7..39c125e 100755
--- a/guilt-push
+++ b/guilt-push
@@ -56,6 +56,12 @@ fi
 patch="$1"
 [ ! -z "$all" ] && patch="-a"
 
+# Treat "guilt push" as "guilt push -n 1".
+if [ -z "$patch" ]; then
+   patch=1
+   num=t
+fi
+
 if [ "$patch" = "-a" ]; then
# we are supposed to push all patches, get the last one out of
# series
@@ -65,7 +71,7 @@ if [ "$patch" = "-a" ]; then
die "There are no patches to push."
fi
 elif [ ! -z "$num" ]; then
-   # we are supposed to pop a set number of patches
+   # we are supposed to push a set number of patches
 
[ "$patch" -lt 0 ] && die "Invalid number of patches to push."
 
@@ -78,11 +84,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 +110,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
 fi
 
 get_series | sed -n -e "${sidx},${eidx}p" | while read p
diff --git a/regression/t-020.out b/regression/t-020.out
index 42433dc..bcb8797 100644
--- a/regression/t-020.out
+++ b/regression/t-020.out
@@ -270,6 +270,95 @@ index 000..8baef1b
 +++ b/def
 @@ -0,0 +1 @@
 +abc
+% guilt push
+File series fully applied, ends at patch mode
+% guilt push -a
+File series fully applied, ends at patch mode
+% list_files
+d .git/patches
+d .git/patches/master
+d .git/refs/patches
+d .git/refs/patches/master
+f 22930c6d1f1938f298a4fca51c57e4b47171db21  .git/patches/master/mode
+f 413390f3906f16f30b054a4fb86c1e014b964504  .git/patches/master/remove
+f 71596bf71b72c2717e1aee378aabefbfa19ab7c8  .git/patches/master/status
+f 9c18cc7abe6b87f18503714a80a677b4094eb457  .git/patches/master/add
+f bacb4aad8a55fe4e7aa58a9ae169990bb764069f  .git/patches/master/series
+f bc9ab2e0f5db99d483961e956e814d963f0309f8  .git/patches/master/modify
+r 33633e7a1aa31972f125878baf7807be57b1672d  .git/refs/patches/master/modify
+r 37d588cc39848368810e88332bd03b083f2ce3ac  .git/refs/patches/master/add
+r ccd56089d1b5305a9d35617cb7f6f4b06ffa68ba  .git/refs/patches/master/mode
+r ffb7faa126a6d91bcdd44a494f76b96dd860b8b9  .git/refs/patches/master/remove
+% git log -p
+commit ccd56089d1b5305a9d35617cb7f6f4b06ffa68ba
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch mode
+
+diff --git a/def b/def
+old mode 100644
+new mode 100755
+
+commit ffb7faa126a6d91bcdd44a494f76b96dd860b8b9
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch remove
+
+diff --git a/abd b/abd
+deleted file mode 100644
+index fd3896d..000
+--- a/abd
 /dev/null
+@@ -1 +0,0 @@
+-‰öuؽáZâñeÏÈE„£WÀV¼/›U?Ú<|¢@6¤8'H¸1G_˜Í§*·ðRҙ¤
ªÂ~·
+\ No newline at end of file
+
+commit 37d588cc39848368810e88332bd03b083f2ce3ac
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch add
+
+diff --git a/abd b/abd
+new file mode 100644
+index 000..fd3896d
+--- /dev/null
 b/abd
+@@ -0,0 +1 @@
++‰öuؽáZâñeÏÈE„£WÀV¼/›U?Ú<|¢@6¤8'H¸1G_˜Í§*·ðRҙ¤
ªÂ~·
+\ No newline at end of file
+
+commit 33633e7a1aa31972f125878baf7807be57b1672d
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch modify
+
+diff --git a/def b/def
+index 8baef1b..7d69c2f 100644
+--- a/def
 b/def
+@@ -1 +1,2 @@
+ abc
++asjhfksad
+
+commit d4850419ccc1146c7169f500725ce504b9774ed0
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+initial
+
+Signed-off-by: Commiter Name 
+
+diff --git a/def b/def
+new file mode 100644
+index 000..8baef1b
+--- /dev/null
 b/def
+@@ -0,0 +1 @@
++abc
 % guilt pop --all
 All patches popped.
 % guilt push
diff --git a/regression/t-020.sh b/regression/t-020.sh
index c165884..3f70c26 100755
--- a/regression/t-020.sh
+++ b/

[GUILT v3 26/31] "guilt pop" now fails when there are no more patches to pop.

2014-05-16 Thread Per Cederqvist
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 
Signed-off-by: Josef 'Jeff' Sipek 
---
 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 000..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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GUILT v3 25/31] "guilt push" now fails when there are no more patches to push.

2014-05-16 Thread Per Cederqvist
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 
Signed-off-by: Josef 'Jeff' Sipek 
---
 guilt-push   | 19 ++-
 regression/t-020.out | 89 
 regression/t-020.sh  | 13 +++-
 3 files changed, 113 insertions(+), 8 deletions(-)

diff --git a/guilt-push b/guilt-push
index 67687e7..39c125e 100755
--- a/guilt-push
+++ b/guilt-push
@@ -56,6 +56,12 @@ fi
 patch="$1"
 [ ! -z "$all" ] && patch="-a"
 
+# Treat "guilt push" as "guilt push -n 1".
+if [ -z "$patch" ]; then
+   patch=1
+   num=t
+fi
+
 if [ "$patch" = "-a" ]; then
# we are supposed to push all patches, get the last one out of
# series
@@ -65,7 +71,7 @@ if [ "$patch" = "-a" ]; then
die "There are no patches to push."
fi
 elif [ ! -z "$num" ]; then
-   # we are supposed to pop a set number of patches
+   # we are supposed to push a set number of patches
 
[ "$patch" -lt 0 ] && die "Invalid number of patches to push."
 
@@ -78,11 +84,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 +110,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
 fi
 
 get_series | sed -n -e "${sidx},${eidx}p" | while read p
diff --git a/regression/t-020.out b/regression/t-020.out
index 42433dc..bcb8797 100644
--- a/regression/t-020.out
+++ b/regression/t-020.out
@@ -270,6 +270,95 @@ index 000..8baef1b
 +++ b/def
 @@ -0,0 +1 @@
 +abc
+% guilt push
+File series fully applied, ends at patch mode
+% guilt push -a
+File series fully applied, ends at patch mode
+% list_files
+d .git/patches
+d .git/patches/master
+d .git/refs/patches
+d .git/refs/patches/master
+f 22930c6d1f1938f298a4fca51c57e4b47171db21  .git/patches/master/mode
+f 413390f3906f16f30b054a4fb86c1e014b964504  .git/patches/master/remove
+f 71596bf71b72c2717e1aee378aabefbfa19ab7c8  .git/patches/master/status
+f 9c18cc7abe6b87f18503714a80a677b4094eb457  .git/patches/master/add
+f bacb4aad8a55fe4e7aa58a9ae169990bb764069f  .git/patches/master/series
+f bc9ab2e0f5db99d483961e956e814d963f0309f8  .git/patches/master/modify
+r 33633e7a1aa31972f125878baf7807be57b1672d  .git/refs/patches/master/modify
+r 37d588cc39848368810e88332bd03b083f2ce3ac  .git/refs/patches/master/add
+r ccd56089d1b5305a9d35617cb7f6f4b06ffa68ba  .git/refs/patches/master/mode
+r ffb7faa126a6d91bcdd44a494f76b96dd860b8b9  .git/refs/patches/master/remove
+% git log -p
+commit ccd56089d1b5305a9d35617cb7f6f4b06ffa68ba
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch mode
+
+diff --git a/def b/def
+old mode 100644
+new mode 100755
+
+commit ffb7faa126a6d91bcdd44a494f76b96dd860b8b9
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch remove
+
+diff --git a/abd b/abd
+deleted file mode 100644
+index fd3896d..000
+--- a/abd
 /dev/null
+@@ -1 +0,0 @@
+-‰öuؽáZâñeÏÈE„£WÀV¼/›U?Ú<|¢@6¤8'H¸1G_˜Í§*·ðRҙ¤
ªÂ~·
+\ No newline at end of file
+
+commit 37d588cc39848368810e88332bd03b083f2ce3ac
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch add
+
+diff --git a/abd b/abd
+new file mode 100644
+index 000..fd3896d
+--- /dev/null
 b/abd
+@@ -0,0 +1 @@
++‰öuؽáZâñeÏÈE„£WÀV¼/›U?Ú<|¢@6¤8'H¸1G_˜Í§*·ðRҙ¤
ªÂ~·
+\ No newline at end of file
+
+commit 33633e7a1aa31972f125878baf7807be57b1672d
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch modify
+
+diff --git a/def b/def
+index 8baef1b..7d69c2f 100644
+--- a/def
 b/def
+@@ -1 +1,2 @@
+ abc
++asjhfksad
+
+commit d4850419ccc1146c7169f500725ce504b9774ed0
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+initial
+
+Signed-off-by: Commiter Name 
+
+diff --git a/def b/def
+new file mode 100644
+index 000..8baef1b
+--- /dev/null
 b/def
+@@ -0,0 +1 @@
++abc
 % guilt pop --all
 All patches popped.
 % guilt push
diff --git a/regression/t-020.sh b/regression/t-020.sh
index c165884..3f70c26 100755
--- a/regression/t-020.sh
+++ b/

Re: [GUILT v2 25/29] "guilt push" now fails when there are no more patches to push.

2014-05-14 Thread Jeff Sipek
On Wed, May 14, 2014 at 11:27:19AM +0200, Per Cederqvist wrote:
> On Tue, May 13, 2014 at 11:41 PM, Jeff Sipek  wrote:
> > On Tue, May 13, 2014 at 10:31:01PM +0200, 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 
> >> ---
> >>  guilt-push   | 19 ++-
> >>  regression/t-020.out | 89 
> >> 
> >>  regression/t-020.sh  | 13 +++-
> >>  3 files changed, 113 insertions(+), 8 deletions(-)
> > ...
> >> diff --git a/regression/t-020.sh b/regression/t-020.sh
> >> index 906aec6..0f9f85d 100755
> >> --- a/regression/t-020.sh
> >> +++ b/regression/t-020.sh
> >> @@ -26,6 +26,17 @@ guilt series | while read n ; do
> >>  done
> >>
> >>  #
> >> +# pushing when there is nothing to push
> >> +#
> >> +
> >> +shouldfail guilt push
> >> +cmd guilt push -a
> >> +
> >> +cmd list_files
> >> +
> >> +cmd git log -p
> >
> > I don't particularly care for the git-log.  Otherwise it looks good.
> >
> > Signed-off-by: Josef 'Jeff' Sipek 
> 
> In my defense, I was just continuing the pattern already
> established in that file. Anyhow, I'll add a new commit to
> the patch series that removes all "git log -p" from all tests.
> (They are present in both t-020.sh and t-021.sh.)

Sounds good.  Thanks,

Jeff.

> /ceder
> 
> >> +
> >> +#
> >>  # pop all
> >>  #
> >>  cmd guilt pop --all
> >> @@ -61,7 +72,7 @@ cmd guilt pop --all
> >>
> >>  npatches=`guilt series | wc -l`
> >>  for n in `_seq -2 $npatches`; do
> >> - if [ $n -ge 0 ]; then
> >> + if [ $n -gt 0 ]; then
> >>   cmd guilt push -n $n
> >>   else
> >>   shouldfail guilt push -n $n
> >> --
> >> 1.8.3.1
> >>
> >
> > --
> > Evolution, n.:
> >   A hypothetical process whereby infinitely improbable events occur with
> >   alarming frequency, order arises from chaos, and no one is given credit.

-- 
UNIX is user-friendly ... it's just selective about who its friends are
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GUILT v2 25/29] "guilt push" now fails when there are no more patches to push.

2014-05-14 Thread Per Cederqvist
On Tue, May 13, 2014 at 11:41 PM, Jeff Sipek  wrote:
> On Tue, May 13, 2014 at 10:31:01PM +0200, 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 
>> ---
>>  guilt-push   | 19 ++-
>>  regression/t-020.out | 89 
>> 
>>  regression/t-020.sh  | 13 +++-
>>  3 files changed, 113 insertions(+), 8 deletions(-)
> ...
>> diff --git a/regression/t-020.sh b/regression/t-020.sh
>> index 906aec6..0f9f85d 100755
>> --- a/regression/t-020.sh
>> +++ b/regression/t-020.sh
>> @@ -26,6 +26,17 @@ guilt series | while read n ; do
>>  done
>>
>>  #
>> +# pushing when there is nothing to push
>> +#
>> +
>> +shouldfail guilt push
>> +cmd guilt push -a
>> +
>> +cmd list_files
>> +
>> +cmd git log -p
>
> I don't particularly care for the git-log.  Otherwise it looks good.
>
> Signed-off-by: Josef 'Jeff' Sipek 

In my defense, I was just continuing the pattern already
established in that file. Anyhow, I'll add a new commit to
the patch series that removes all "git log -p" from all tests.
(They are present in both t-020.sh and t-021.sh.)

/ceder

>> +
>> +#
>>  # pop all
>>  #
>>  cmd guilt pop --all
>> @@ -61,7 +72,7 @@ cmd guilt pop --all
>>
>>  npatches=`guilt series | wc -l`
>>  for n in `_seq -2 $npatches`; do
>> - if [ $n -ge 0 ]; then
>> + if [ $n -gt 0 ]; then
>>   cmd guilt push -n $n
>>   else
>>   shouldfail guilt push -n $n
>> --
>> 1.8.3.1
>>
>
> --
> Evolution, n.:
>   A hypothetical process whereby infinitely improbable events occur with
>   alarming frequency, order arises from chaos, and no one is given credit.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GUILT v2 26/29] "guilt pop" now fails when there are no more patches to pop.

2014-05-13 Thread Jeff Sipek
Signed-off-by: Josef 'Jeff' Sipek 

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 
> ---
>  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 000..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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GUILT v2 25/29] "guilt push" now fails when there are no more patches to push.

2014-05-13 Thread Jeff Sipek
On Tue, May 13, 2014 at 10:31:01PM +0200, 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 
> ---
>  guilt-push   | 19 ++-
>  regression/t-020.out | 89 
> 
>  regression/t-020.sh  | 13 +++-
>  3 files changed, 113 insertions(+), 8 deletions(-)
...
> diff --git a/regression/t-020.sh b/regression/t-020.sh
> index 906aec6..0f9f85d 100755
> --- a/regression/t-020.sh
> +++ b/regression/t-020.sh
> @@ -26,6 +26,17 @@ guilt series | while read n ; do
>  done
>  
>  #
> +# pushing when there is nothing to push
> +#
> +
> +shouldfail guilt push
> +cmd guilt push -a
> +
> +cmd list_files
> +
> +cmd git log -p

I don't particularly care for the git-log.  Otherwise it looks good.

Signed-off-by: Josef 'Jeff' Sipek 


> +
> +#
>  # pop all
>  #
>  cmd guilt pop --all
> @@ -61,7 +72,7 @@ cmd guilt pop --all
>  
>  npatches=`guilt series | wc -l`
>  for n in `_seq -2 $npatches`; do
> - if [ $n -ge 0 ]; then
> + if [ $n -gt 0 ]; then
>   cmd guilt push -n $n
>   else
>   shouldfail guilt push -n $n
> -- 
> 1.8.3.1
> 

-- 
Evolution, n.:
  A hypothetical process whereby infinitely improbable events occur with
  alarming frequency, order arises from chaos, and no one is given credit.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GUILT v2 25/29] "guilt push" now fails when there are no more patches to push.

2014-05-13 Thread Per Cederqvist
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 
---
 guilt-push   | 19 ++-
 regression/t-020.out | 89 
 regression/t-020.sh  | 13 +++-
 3 files changed, 113 insertions(+), 8 deletions(-)

diff --git a/guilt-push b/guilt-push
index 67687e7..39c125e 100755
--- a/guilt-push
+++ b/guilt-push
@@ -56,6 +56,12 @@ fi
 patch="$1"
 [ ! -z "$all" ] && patch="-a"
 
+# Treat "guilt push" as "guilt push -n 1".
+if [ -z "$patch" ]; then
+   patch=1
+   num=t
+fi
+
 if [ "$patch" = "-a" ]; then
# we are supposed to push all patches, get the last one out of
# series
@@ -65,7 +71,7 @@ if [ "$patch" = "-a" ]; then
die "There are no patches to push."
fi
 elif [ ! -z "$num" ]; then
-   # we are supposed to pop a set number of patches
+   # we are supposed to push a set number of patches
 
[ "$patch" -lt 0 ] && die "Invalid number of patches to push."
 
@@ -78,11 +84,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 +110,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
 fi
 
 get_series | sed -n -e "${sidx},${eidx}p" | while read p
diff --git a/regression/t-020.out b/regression/t-020.out
index 7e07efa..23cb9db 100644
--- a/regression/t-020.out
+++ b/regression/t-020.out
@@ -270,6 +270,95 @@ index 000..8baef1b
 +++ b/def
 @@ -0,0 +1 @@
 +abc
+% guilt push
+File series fully applied, ends at patch mode
+% guilt push -a
+File series fully applied, ends at patch mode
+% list_files
+d .git/patches
+d .git/patches/master
+d .git/refs/patches
+d .git/refs/patches/master
+f 22930c6d1f1938f298a4fca51c57e4b47171db21  .git/patches/master/mode
+f 413390f3906f16f30b054a4fb86c1e014b964504  .git/patches/master/remove
+f 71596bf71b72c2717e1aee378aabefbfa19ab7c8  .git/patches/master/status
+f 9c18cc7abe6b87f18503714a80a677b4094eb457  .git/patches/master/add
+f bacb4aad8a55fe4e7aa58a9ae169990bb764069f  .git/patches/master/series
+f bc9ab2e0f5db99d483961e956e814d963f0309f8  .git/patches/master/modify
+r 33633e7a1aa31972f125878baf7807be57b1672d  .git/refs/patches/master/modify
+r 37d588cc39848368810e88332bd03b083f2ce3ac  .git/refs/patches/master/add
+r ccd56089d1b5305a9d35617cb7f6f4b06ffa68ba  .git/refs/patches/master/mode
+r ffb7faa126a6d91bcdd44a494f76b96dd860b8b9  .git/refs/patches/master/remove
+% git log -p
+commit ccd56089d1b5305a9d35617cb7f6f4b06ffa68ba
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch mode
+
+diff --git a/def b/def
+old mode 100644
+new mode 100755
+
+commit ffb7faa126a6d91bcdd44a494f76b96dd860b8b9
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch remove
+
+diff --git a/abd b/abd
+deleted file mode 100644
+index fd3896d..000
+--- a/abd
 /dev/null
+@@ -1 +0,0 @@
+-‰öuؽáZâñeÏÈE„£WÀV¼/›U?Ú<|¢@6¤8'H¸1G_˜Í§*·ðRҙ¤
ªÂ~·
+\ No newline at end of file
+
+commit 37d588cc39848368810e88332bd03b083f2ce3ac
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch add
+
+diff --git a/abd b/abd
+new file mode 100644
+index 000..fd3896d
+--- /dev/null
 b/abd
+@@ -0,0 +1 @@
++‰öuؽáZâñeÏÈE„£WÀV¼/›U?Ú<|¢@6¤8'H¸1G_˜Í§*·ðRҙ¤
ªÂ~·
+\ No newline at end of file
+
+commit 33633e7a1aa31972f125878baf7807be57b1672d
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch modify
+
+diff --git a/def b/def
+index 8baef1b..7d69c2f 100644
+--- a/def
 b/def
+@@ -1 +1,2 @@
+ abc
++asjhfksad
+
+commit d4850419ccc1146c7169f500725ce504b9774ed0
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+initial
+
+Signed-off-by: Commiter Name 
+
+diff --git a/def b/def
+new file mode 100644
+index 000..8baef1b
+--- /dev/null
 b/def
+@@ -0,0 +1 @@
++abc
 % guilt pop --all
 All patches popped.
 % guilt push
diff --git a/regression/t-020.sh b/regression/t-020.sh
index 906aec6..0f9f85d 100755
--- a/regression/t-020.sh
+++ b/regression/t-020.sh
@@ -26,6 +26,17

[GUILT v2 26/29] "guilt pop" now fails when there are no more patches to pop.

2014-05-13 Thread Per Cederqvist
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 
---
 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 000..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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GUILT 25/28] "guilt push" now fails when there are no more patches to push.

2014-05-08 Thread Per Cederqvist
On Thu, May 8, 2014 at 12:04 AM, Jeff Sipek  wrote:
> 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 
>> ---
>>  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..350 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

Ok.

> 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.

> (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

>>  fi
>>
>>  get_series | sed -n -e "${sidx},${eidx}p" | while read p
>
> Jeff.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [GUILT 25/28] "guilt push" now fails when there are no more patches to push.

2014-05-07 Thread Jeff Sipek
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 
> ---
>  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..350 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.)

> @@ -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 p

Jeff.
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[GUILT 25/28] "guilt push" now fails when there are no more patches to push.

2014-03-21 Thread Per Cederqvist
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 
---
 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..350 100755
--- a/guilt-push
+++ b/guilt-push
@@ -55,6 +55,7 @@ fi
 
 patch="$1"
 [ ! -z "$all" ] && patch="-a"
+[ -z "$patch" ] && { patch=1; num=t; }
 
 if [ "$patch" = "-a" ]; then
# we are supposed to push all patches, get the last one out of
@@ -65,7 +66,7 @@ if [ "$patch" = "-a" ]; then
die "There are no patches to push."
fi
 elif [ ! -z "$num" ]; then
-   # we are supposed to pop a set number of patches
+   # we are supposed to push a set number of patches
 
[ "$patch" -lt 0 ] && die "Invalid number of patches to push."
 
@@ -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
 fi
 
 get_series | sed -n -e "${sidx},${eidx}p" | while read p
diff --git a/regression/t-020.out b/regression/t-020.out
index 7e07efa..23cb9db 100644
--- a/regression/t-020.out
+++ b/regression/t-020.out
@@ -270,6 +270,95 @@ index 000..8baef1b
 +++ b/def
 @@ -0,0 +1 @@
 +abc
+% guilt push
+File series fully applied, ends at patch mode
+% guilt push -a
+File series fully applied, ends at patch mode
+% list_files
+d .git/patches
+d .git/patches/master
+d .git/refs/patches
+d .git/refs/patches/master
+f 22930c6d1f1938f298a4fca51c57e4b47171db21  .git/patches/master/mode
+f 413390f3906f16f30b054a4fb86c1e014b964504  .git/patches/master/remove
+f 71596bf71b72c2717e1aee378aabefbfa19ab7c8  .git/patches/master/status
+f 9c18cc7abe6b87f18503714a80a677b4094eb457  .git/patches/master/add
+f bacb4aad8a55fe4e7aa58a9ae169990bb764069f  .git/patches/master/series
+f bc9ab2e0f5db99d483961e956e814d963f0309f8  .git/patches/master/modify
+r 33633e7a1aa31972f125878baf7807be57b1672d  .git/refs/patches/master/modify
+r 37d588cc39848368810e88332bd03b083f2ce3ac  .git/refs/patches/master/add
+r ccd56089d1b5305a9d35617cb7f6f4b06ffa68ba  .git/refs/patches/master/mode
+r ffb7faa126a6d91bcdd44a494f76b96dd860b8b9  .git/refs/patches/master/remove
+% git log -p
+commit ccd56089d1b5305a9d35617cb7f6f4b06ffa68ba
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch mode
+
+diff --git a/def b/def
+old mode 100644
+new mode 100755
+
+commit ffb7faa126a6d91bcdd44a494f76b96dd860b8b9
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch remove
+
+diff --git a/abd b/abd
+deleted file mode 100644
+index fd3896d..000
+--- a/abd
 /dev/null
+@@ -1 +0,0 @@
+-‰öuؽáZâñeÏÈE„£WÀV¼/›U?Ú<|¢@6¤8'H¸1G_˜Í§*·ðRҙ¤
ªÂ~·
+\ No newline at end of file
+
+commit 37d588cc39848368810e88332bd03b083f2ce3ac
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch add
+
+diff --git a/abd b/abd
+new file mode 100644
+index 000..fd3896d
+--- /dev/null
 b/abd
+@@ -0,0 +1 @@
++‰öuؽáZâñeÏÈE„£WÀV¼/›U?Ú<|¢@6¤8'H¸1G_˜Í§*·ðRҙ¤
ªÂ~·
+\ No newline at end of file
+
+commit 33633e7a1aa31972f125878baf7807be57b1672d
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+patch modify
+
+diff --git a/def b/def
+index 8baef1b..7d69c2f 100644
+--- a/def
 b/def
+@@ -1 +1,2 @@
+ abc
++asjhfksad
+
+commit d4850419ccc1146c7169f500725ce504b9774ed0
+Author: Author Name 
+Date:   Mon Jan 1 00:00:00 2007 +
+
+initial
+
+Signed-off-by: Commiter Name 
+
+diff --git a/def b/def
+new file mode 100644
+index 000..8baef1b
+--- /dev/null
 b/def
+@@ -0,0 +1 @@
++abc
 % guilt pop --all
 All patches popped.
 % guilt push
diff --git a/regression/t-020.sh b/regression/t-020.sh
index 906aec6..0f9f85d 100755
--- a/regression/t-020.sh
+++ b/regression/t-020.sh
@@ -26,6 +26,17 @@ guilt series | while read n ; do
 done
 
 #
+# pushing when there is nothing to 

[GUILT 26/28] "guilt pop" now fails when there are no more patches to pop.

2014-03-21 Thread Per Cederqvist
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 
---
 guilt-pop| 13 +++--
 regression/t-021.out |  2 ++
 regression/t-021.sh  |  6 ++
 regression/t-061.sh  |  7 ++-
 4 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/guilt-pop b/guilt-pop
index f0e647f..208f868 100755
--- a/guilt-pop
+++ b/guilt-pop
@@ -48,10 +48,16 @@ fi
 
 patch="$1"
 [ ! -z "$all" ] && patch="-a"
+[ -z "$patch" ] && { patch=1; num=t; }
 
 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 +74,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 000..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..a9a4fea 100755
--- a/regression/t-061.sh
+++ b/regression/t-061.sh
@@ -48,7 +48,12 @@ 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

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


More patches

2005-04-18 Thread Daniel Barkalow
Here are the things I was saving for after the previous set:

 1: Report the actual contents of trees
 2: Add functions for scanning history by date
 3: Add http-pull, a program to fetch the objects you need by HTTP
 4: Change merge-base to find the most recent common ancestor

1 and 2 are core extensions. 3 might be best for the pasky tree. 4 is
mostly a demo of 2 and because Linus thought it was a better algorithm.

-Daniel
*This .sig left intentionally blank*

-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html