From ec6ed33669abd849d5b6d5e6ea09ea58f7ced403 Mon Sep 17 00:00:00 2001 From: Yann Dirson Date: Thu, 7 Jun 2007 00:01:47 +0200 Subject: [PATCH] Catch early trying rebasing to unknown ref, and add testcase. Signed-off-by: Yann Dirson --- stgit/commands/rebase.py | 4 ++++ t/t2200-rebase.sh | 12 ++++++++++++ 2 files changed, 16 insertions(+) diff --git a/stgit/commands/rebase.py b/stgit/commands/rebase.py index d132b60..2f0e660 100644 --- a/stgit/commands/rebase.py +++ b/stgit/commands/rebase.py @@ -52,6 +52,10 @@ def func(parser, options, args): check_conflicts() check_head_top_equal() + # ensure an exception is raised before popping on non-existent target + if git_id(args[0]) == None: + raise GitException, 'Unknown revision: %s' % git_id + applied = prepare_rebase(real_rebase=True, force=options.force) rebase(args[0]) post_rebase(applied, options.nopush, options.merged) diff --git a/t/t2200-rebase.sh b/t/t2200-rebase.sh index 882572c..c142e08 100755 --- a/t/t2200-rebase.sh +++ b/t/t2200-rebase.sh @@ -31,4 +31,16 @@ test_expect_success \ test `stg applied | wc -l` = 1 ' +test_expect_failure \ + 'Attempt rebase to non-existing commit' \ + ' + stg rebase not-a-ref + ' + +test_expect_success \ + 'Check patches were re-applied' \ + ' + test $(stg applied | wc -l) = 1 + ' + test_done -- 2.11.0