diff options
author | Eric Wong <normalperson@yhbt.net> | 2006-06-24 18:29:49 -0700 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-06-25 00:38:34 -0700 |
commit | d5e673b60be2eb99153276366b6b5ff3277805df (patch) | |
tree | 60375d772dba1e3a4e9c43d93b6350146d0e789a /t | |
parent | 9e4bc7dd1bb9d92491c475cec55147fa0b3f954d (diff) | |
download | git-d5e673b60be2eb99153276366b6b5ff3277805df.tar.gz git-d5e673b60be2eb99153276366b6b5ff3277805df.tar.xz |
rebase: allow --skip to work with --merge
Now that we control the merge base selection, we won't be forced
into rolling things in that we wanted to skip beforehand.
Also, add a test to ensure this all works as intended.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 't')
-rwxr-xr-x | t/t3403-rebase-skip.sh | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/t/t3403-rebase-skip.sh b/t/t3403-rebase-skip.sh new file mode 100755 index 000000000..8ab63c527 --- /dev/null +++ b/t/t3403-rebase-skip.sh @@ -0,0 +1,61 @@ +#!/bin/sh +# +# Copyright (c) 2006 Eric Wong +# + +test_description='git rebase --merge --skip tests' + +. ./test-lib.sh + +# we assume the default git-am -3 --skip strategy is tested independently +# and always works :) + +if test "$no_python"; then + echo "Skipping: no python => no recursive merge" + test_done + exit 0 +fi + +test_expect_success setup ' + echo hello > hello && + git add hello && + git commit -m "hello" && + git branch skip-reference && + + echo world >> hello && + git commit -a -m "hello world" && + echo goodbye >> hello && + git commit -a -m "goodbye" && + + git checkout -f skip-reference && + echo moo > hello && + git commit -a -m "we should skip this" && + echo moo > cow && + git add cow && + git commit -m "this should not be skipped" && + git branch pre-rebase skip-reference && + git branch skip-merge skip-reference + ' + +test_expect_failure 'rebase with git am -3 (default)' 'git rebase master' + +test_expect_success 'rebase --skip with am -3' ' + git reset --hard HEAD && + git rebase --skip + ' +test_expect_success 'checkout skip-merge' 'git checkout -f skip-merge' + +test_expect_failure 'rebase with --merge' 'git rebase --merge master' + +test_expect_success 'rebase --skip with --merge' ' + git reset --hard HEAD && + git rebase --skip + ' + +test_expect_success 'merge and reference trees equal' \ + 'test -z "`git-diff-tree skip-merge skip-reference`"' + +test_debug 'gitk --all & sleep 1' + +test_done + |