diff: reject unknown change class given to --diff-filter
[gitweb.git] / t / t3401-rebase-partial.sh
index 166ddb1447db4c33a79f0e9aea21cb00e8a151f2..58f482378392c8c358a3129094885f90ead9808c 100755 (executable)
@@ -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