git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Per Cederqvist <cederp@opera.com>
Date
May 18, 2014, 22:00 UTC
Message-ID
<1400450409-30998-27-git-send-email-cederp@opera.com>
In-Reply-To
<1400450409-30998-1-git-send-email-cederp@opera.com>

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@opera.com>
Signed-off-by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
---
 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
Previous: Per CederqvistNext: Per Cederqvist
Message 31 of 40 in “[GUILT v4 00/33] Teach guilt import-commit how to create legal patch names, and more”
  1. Per CederqvistMay 18, 2014
  2. 01/33 The tests should not fail if guilt.diffstat is set.Per Cederqvist, May 18, 2014
  3. 02/33 Allow "guilt delete -f" to run from a dir which contains spaces.Per Cederqvist, May 18, 2014
  4. 03/33 Added test case for "guilt delete -f".Per Cederqvist, May 18, 2014
  5. 04/33 Allow "guilt import-commit" to run from a dir which contains spaces.Per Cederqvist, May 18, 2014
  6. 05/33 "guilt new": Accept more than 4 arguments.Per Cederqvist, May 18, 2014
  7. 06/33 Fix the do_get_patch function.Per Cederqvist, May 18, 2014
  8. 07/33 Added test cases for "guilt fold".Per Cederqvist, May 18, 2014
  9. 08/33 Added more test cases for "guilt new": empty patches.Per Cederqvist, May 18, 2014
  10. 09/33 Test suite: properly check the exit status of commands.Per Cederqvist, May 18, 2014
  11. Jeff SipekJan 22, 2015
  12. 10/33 Run test_failed if the exit status of a test script is bad.Per Cederqvist, May 18, 2014
  13. 11/33 test suite: remove pointless redirection.Per Cederqvist, May 18, 2014
  14. 12/33 "guilt header": more robust header selection.Per Cederqvist, May 18, 2014
  15. 13/33 Check that "guilt header '.*'" fails.Per Cederqvist, May 18, 2014
  16. 14/33 Use "git check-ref-format" to validate patch names.Per Cederqvist, May 18, 2014
  17. Jeff SipekJan 22, 2015
  18. 15/33 Produce legal patch names in guilt-import-commit.Per Cederqvist, May 18, 2014
  19. Jeff SipekJan 22, 2015
  20. Per CederqvistJan 22, 2015
  21. 16/33 Fix backslash handling when creating names of imported patches.Per Cederqvist, May 18, 2014
  22. 17/33 "guilt graph" no longer loops when no patches are applied.Per Cederqvist, May 18, 2014
  23. 18/33 guilt-graph: Handle commas in branch names.Per Cederqvist, May 18, 2014
  24. 19/33 Check that "guilt graph" works when working on a branch with a comma.Per Cederqvist, May 18, 2014
  25. 20/33 "guilt graph": Handle patch names containing quotes.Per Cederqvist, May 18, 2014
  26. 21/33 The log.decorate setting should not influence import-commit.Per Cederqvist, May 18, 2014
  27. 22/33 The log.decorate setting should not influence patchbomb.Per Cederqvist, May 18, 2014
  28. 23/33 The log.decorate setting should not influence guilt rebase.Per Cederqvist, May 18, 2014
  29. 24/33 disp no longer processes backslashes.Per Cederqvist, May 18, 2014
  30. 25/33 "guilt push" now fails when there are no more patches to push.Per Cederqvist, May 18, 2014
  31. 26/33 "guilt pop" now fails when there are no more patches to pop.Per Cederqvist, May 18, 2014
  32. 27/33 Minor testsuite fix.Per Cederqvist, May 18, 2014
  33. 28/33 Fix coding style errors in t-061.sh.Per Cederqvist, May 18, 2014
  34. 29/33 Added guilt.reusebranch configuration option.Per Cederqvist, May 18, 2014
  35. 30/33 Added a short style guide, and Emacs settings.Per Cederqvist, May 18, 2014
  36. 31/33 Don't use "git log -p" in the test suite.Per Cederqvist, May 18, 2014
  37. 32/33 Improved doc and tests for guilt header.Per Cederqvist, May 18, 2014
  38. Jeff SipekJan 22, 2015
  39. 33/33 Document the exit status of guilt push and guilt pop.Per Cederqvist, May 18, 2014
  40. Jeff SipekJan 22, 2015

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.