diff options
author | Junio C Hamano <gitster@pobox.com> | 2011-05-13 10:45:21 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-05-13 10:45:21 -0700 |
commit | e31b0183729cab2d6a8e2c76f009017355dacf06 (patch) | |
tree | f76385fbc62c0bd508891c681594537f378fcf50 /t | |
parent | bc67ad8c375ce8f31021411f088a968f12cb2675 (diff) | |
parent | c192f9c865dbdae48c0400d717581d34cd315fb8 (diff) | |
download | git-e31b0183729cab2d6a8e2c76f009017355dacf06.tar.gz git-e31b0183729cab2d6a8e2c76f009017355dacf06.tar.xz |
Merge branch 'aw/maint-rebase-i-p-no-ff' into maint
* aw/maint-rebase-i-p-no-ff:
git-rebase--interactive.sh: preserve-merges fails on merges created with no-ff
Diffstat (limited to 't')
-rwxr-xr-x | t/t3409-rebase-preserve-merges.sh | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/t/t3409-rebase-preserve-merges.sh b/t/t3409-rebase-preserve-merges.sh index 19341e5ca..08201e233 100755 --- a/t/t3409-rebase-preserve-merges.sh +++ b/t/t3409-rebase-preserve-merges.sh @@ -27,7 +27,17 @@ export GIT_AUTHOR_EMAIL # \ # B2 <-- origin/topic # -# In both cases, 'topic' is rebased onto 'origin/topic'. +# Clone 3 (no-ff merge): +# +# A1--A2--B3 <-- origin/master +# \ +# B1------M <-- topic +# \ / +# \--A3 <-- topic2 +# \ +# B2 <-- origin/topic +# +# In all cases, 'topic' is rebased onto 'origin/topic'. test_expect_success 'setup for merge-preserving rebase' \ 'echo First > A && @@ -61,6 +71,16 @@ test_expect_success 'setup for merge-preserving rebase' \ git commit -m "Merge origin/master into topic" ) && + git clone ./. clone3 && + ( + cd clone3 && + git checkout -b topic2 origin/topic && + echo Sixth > A && + git commit -a -m "Modify A3" && + git checkout -b topic origin/topic && + git merge --no-ff topic2 + ) && + git checkout topic && echo Fourth >> B && git commit -a -m "Modify B2" @@ -93,4 +113,14 @@ test_expect_success '--continue works after a conflict' ' ) ' +test_expect_success 'rebase -p preserves no-ff merges' ' + ( + cd clone3 && + git fetch && + git rebase -p origin/topic && + test 3 = $(git rev-list --all --pretty=oneline | grep "Modify A" | wc -l) && + test 1 = $(git rev-list --all --pretty=oneline | grep "Merge branch" | wc -l) + ) +' + test_done |