commit-graph: add --split option to builtin
[gitweb.git] / t / t3510-cherry-pick-sequence.sh
index b42cd66d3a574138148a311b34472506b433c286..941d5026da2adc857fa332f899ea3594876a550c 100755 (executable)
@@ -61,7 +61,11 @@ test_expect_success 'cherry-pick mid-cherry-pick-sequence' '
 
 test_expect_success 'cherry-pick persists opts correctly' '
        pristine_detach initial &&
-       test_expect_code 128 git cherry-pick -s -m 1 --strategy=recursive -X patience -X ours initial..anotherpick &&
+       # to make sure that the session to cherry-pick a sequence
+       # gets interrupted, use a high-enough number that is larger
+       # than the number of parents of any commit we have created
+       mainline=4 &&
+       test_expect_code 128 git cherry-pick -s -m $mainline --strategy=recursive -X patience -X ours initial..anotherpick &&
        test_path_is_dir .git/sequencer &&
        test_path_is_file .git/sequencer/head &&
        test_path_is_file .git/sequencer/todo &&
@@ -69,7 +73,7 @@ test_expect_success 'cherry-pick persists opts correctly' '
        echo "true" >expect &&
        git config --file=.git/sequencer/opts --get-all options.signoff >actual &&
        test_cmp expect actual &&
-       echo "1" >expect &&
+       echo "$mainline" >expect &&
        git config --file=.git/sequencer/opts --get-all options.mainline >actual &&
        test_cmp expect actual &&
        echo "recursive" >expect &&
@@ -103,7 +107,8 @@ test_expect_success '--quit cleans up sequencer state' '
        pristine_detach initial &&
        test_expect_code 1 git cherry-pick base..picked &&
        git cherry-pick --quit &&
-       test_path_is_missing .git/sequencer
+       test_path_is_missing .git/sequencer &&
+       test_path_is_missing .git/CHERRY_PICK_HEAD
 '
 
 test_expect_success '--quit keeps HEAD and conflicted index intact' '
@@ -132,6 +137,7 @@ test_expect_success '--abort to cancel multiple cherry-pick' '
        test_expect_code 1 git cherry-pick base..anotherpick &&
        git cherry-pick --abort &&
        test_path_is_missing .git/sequencer &&
+       test_path_is_missing .git/CHERRY_PICK_HEAD &&
        test_cmp_rev initial HEAD &&
        git update-index --refresh &&
        git diff-index --exit-code HEAD
@@ -142,6 +148,7 @@ test_expect_success '--abort to cancel single cherry-pick' '
        test_expect_code 1 git cherry-pick picked &&
        git cherry-pick --abort &&
        test_path_is_missing .git/sequencer &&
+       test_path_is_missing .git/CHERRY_PICK_HEAD &&
        test_cmp_rev initial HEAD &&
        git update-index --refresh &&
        git diff-index --exit-code HEAD
@@ -162,6 +169,7 @@ test_expect_success 'cherry-pick --abort to cancel multiple revert' '
        test_expect_code 1 git revert base..picked &&
        git cherry-pick --abort &&
        test_path_is_missing .git/sequencer &&
+       test_path_is_missing .git/CHERRY_PICK_HEAD &&
        test_cmp_rev anotherpick HEAD &&
        git update-index --refresh &&
        git diff-index --exit-code HEAD
@@ -239,6 +247,7 @@ test_expect_success '--abort after last commit in sequence' '
        test_expect_code 1 git cherry-pick base..picked &&
        git cherry-pick --abort &&
        test_path_is_missing .git/sequencer &&
+       test_path_is_missing .git/CHERRY_PICK_HEAD &&
        test_cmp_rev initial HEAD &&
        git update-index --refresh &&
        git diff-index --exit-code HEAD
@@ -480,11 +489,16 @@ test_expect_success 'malformed instruction sheet 2' '
        test_expect_code 128 git cherry-pick --continue
 '
 
-test_expect_success 'empty commit set' '
+test_expect_success 'empty commit set (no commits to walk)' '
        pristine_detach initial &&
        test_expect_code 128 git cherry-pick base..base
 '
 
+test_expect_success 'empty commit set (culled during walk)' '
+       pristine_detach initial &&
+       test_expect_code 128 git cherry-pick -2 --author=no.such.author base
+'
+
 test_expect_success 'malformed instruction sheet 3' '
        pristine_detach initial &&
        test_expect_code 1 git cherry-pick base..anotherpick &&