diff options
Diffstat (limited to 't/t3401-rebase-partial.sh')
-rwxr-xr-x | t/t3401-rebase-partial.sh | 80 |
1 files changed, 44 insertions, 36 deletions
diff --git a/t/t3401-rebase-partial.sh b/t/t3401-rebase-partial.sh index aea6685984..58f4823783 100755 --- a/t/t3401-rebase-partial.sh +++ b/t/t3401-rebase-partial.sh @@ -11,51 +11,59 @@ local branch. ' . ./test-lib.sh -test_expect_success \ - 'prepare repository with topic branch' \ - 'echo First > A && - git update-index --add A && - git commit -m "Add A." && - - git checkout -b my-topic-branch && - - echo Second > B && - git update-index --add B && - git commit -m "Add B." && +test_expect_success 'prepare repository with topic branch' ' + test_commit A && + git checkout -b my-topic-branch && + test_commit B && + test_commit C && + git checkout -f master && + test_commit A2 A.t +' - echo AnotherSecond > C && - git update-index --add C && - git commit -m "Add C." && +test_expect_success 'pick top patch from topic branch into master' ' + git cherry-pick C && + git checkout -f my-topic-branch +' - git checkout -f master && +test_debug ' + git cherry master && + git format-patch -k --stdout --full-index master >/dev/null && + gitk --all & sleep 1 +' - echo Third >> A && - git update-index A && - git commit -m "Modify A." +test_expect_success 'rebase topic branch against new master and check git am did not get halted' ' + git rebase master && + test_path_is_missing .git/rebase-apply ' -test_expect_success \ - 'pick top patch from topic branch into master' \ - 'git cherry-pick my-topic-branch^0 && - git checkout -f my-topic-branch && - git branch master-merge master && - git branch my-topic-branch-merge my-topic-branch +test_expect_success 'rebase --merge topic branch that was partially merged upstream' ' + git reset --hard C && + git rebase --merge master && + test_path_is_missing .git/rebase-merge ' -test_debug \ - 'git cherry master && - git format-patch -k --stdout --full-index master >/dev/null && - gitk --all & sleep 1 +test_expect_success 'rebase ignores empty commit' ' + git reset --hard A && + git commit --allow-empty -m empty && + test_commit D && + git rebase C && + test "$(git log --format=%s C..)" = "D" ' -test_expect_success \ - 'rebase topic branch against new master and check git am did not get halted' \ - 'git rebase master && test ! -d .git/rebase-apply' +test_expect_success 'rebase --keep-empty' ' + git reset --hard D && + git rebase --keep-empty C && + test "$(git log --format=%s C..)" = "D +empty" +' -test_expect_success \ - 'rebase --merge topic branch that was partially merged upstream' \ - 'git checkout -f my-topic-branch-merge && - git rebase --merge master-merge && - test ! -d .git/rebase-merge' +test_expect_success 'rebase --keep-empty keeps empty even if already in upstream' ' + git reset --hard A && + git commit --allow-empty -m also-empty && + git rebase --keep-empty D && + test "$(git log --format=%s A..)" = "also-empty +D +empty" +' test_done |