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

[PATCH v2] Fixes "stg goto `stg top`" to no-op & adds test

From
IJIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
Date
Oct 28, 2006, 10:52 UTC
Message-ID
<Pine.LNX.4.64.0610281348270.27259@kivilampi-30.cs.helsinki.fi>
In-Reply-To
<Pine.LNX.4.64.0610280156320.26765@kivilampi-30.cs.helsinki.fi>

Please forgive me that didn't read the test metadata through while producing the last patch. This time also it should be correct...

StGIT tried to access index that is not valid when goto'ing to the current patch. Adds also a test for it.

Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@helsinki.fi>
---
 stgit/commands/common.py |   17 ++++++++++-------
 t/t1600-goto-top.sh      |   32 ++++++++++++++++++++++++++++++++
 2 files changed, 42 insertions(+), 7 deletions(-)
diff --git a/stgit/commands/common.py b/stgit/commands/common.py
index 1ea6025..88b1b94 100644
--- a/stgit/commands/common.py
+++ b/stgit/commands/common.py
@@ -200,16 +200,19 @@ def pop_patches(patches, keep = False):
     """Pop the patches in the list from the stack. It is assumed that
     the patches are listed in the stack reverse order.
     """
-    p = patches[-1]
-    if len(patches) == 1:
-        print 'Popping patch "%s"...' % p,
+    if len(patches) == 0:
+        print 'nothing to push/pop'
     else:
-        print 'Popping "%s" - "%s" patches...' % (patches[0], p),
-    sys.stdout.flush()
+        p = patches[-1]
+        if len(patches) == 1:
+            print 'Popping patch "%s"...' % p,
+        else:
+            print 'Popping "%s" - "%s" patches...' % (patches[0], p),
+        sys.stdout.flush()
 
-    crt_series.pop_patch(p, keep)
+        crt_series.pop_patch(p, keep)
 
-    print 'done'
+        print 'done'
 
 def parse_patches(patch_args, patch_list):
     """Parse patch_args list for patch names in patch_list and return
diff --git a/t/t1600-goto-top.sh b/t/t1600-goto-top.sh
new file mode 100755
index 0000000..618ebc7
--- /dev/null
+++ b/t/t1600-goto-top.sh
@@ -0,0 +1,32 @@
+#!/bin/sh
+#
+# Copyright (c) 2006 Ilpo Järvinen
+#
+
+test_description='Test goto to the current patch.
+
+'
+
+. ./test-lib.sh
+
+test_expect_success \
+	'Initialize the StGIT repository' \
+	'stg init
+'
+
+test_expect_success \
+	'Create the first patch' \
+	'
+	stg new foo -m "Foo Patch" &&
+	echo foo > test &&
+	stg add test &&
+	stg refresh
+	'
+
+test_expect_success \
+	'Goto current patch' \
+	'
+	stg goto `stg top`
+	'
+
+test_done
-- 
1.4.2
Previous: Ilpo Järvinen
Message 2 of 2 in “Fixes "stg goto `stg top`" to no-op & test”
  1. Fixes "stg goto `stg top`" to no-op & testIlpo Järvinen, Oct 27, 2006
  2. Fixes "stg goto `stg top`" to no-op & adds testIlpo Järvinen, Oct 28, 2006

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.