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@xxxxxxxxxxx> --- 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..94a88cf --- /dev/null +++ b/t/t1600-goto-top.sh @@ -0,0 +1,32 @@ +#!/bin/sh +# +# Copyright (c) 2006 Catalin Marinas +# + +test_description='Test the uncommit command. + +' + +. ./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