Sync with 'master'
[alt-git.git] / t / t3423-rebase-reword.sh
blob2fab703d615485020f0692bdc2d39748ba0f72d4
1 #!/bin/sh
3 test_description='git rebase interactive with rewording'
5 TEST_PASSES_SANITIZE_LEAK=true
6 . ./test-lib.sh
8 . "$TEST_DIRECTORY"/lib-rebase.sh
10 test_expect_success 'setup' '
11 test_commit main file-1 test &&
13 git checkout -b stuff &&
15 test_commit feature_a file-2 aaa &&
16 test_commit feature_b file-2 ddd
19 test_expect_success 'reword without issues functions as intended' '
20 test_when_finished "reset_rebase" &&
22 git checkout stuff^0 &&
24 set_fake_editor &&
25 FAKE_LINES="pick 1 reword 2" FAKE_COMMIT_MESSAGE="feature_b_reworded" \
26 git rebase -i -v main &&
28 test "$(git log -1 --format=%B)" = "feature_b_reworded" &&
29 test $(git rev-list --count HEAD) = 3
32 test_expect_success 'reword after a conflict preserves commit' '
33 test_when_finished "reset_rebase" &&
35 git checkout stuff^0 &&
37 set_fake_editor &&
38 test_must_fail env FAKE_LINES="reword 2" \
39 git rebase -i -v main &&
41 git checkout --theirs file-2 &&
42 git add file-2 &&
43 FAKE_COMMIT_MESSAGE="feature_b_reworded" git rebase --continue &&
45 test "$(git log -1 --format=%B)" = "feature_b_reworded" &&
46 test $(git rev-list --count HEAD) = 2
49 test_done