t / t3423-rebase-reword.shon commit built-in rebase --autostash: leave the current branch alone if possible (176f5d9)
   1#!/bin/sh
   2
   3test_description='git rebase interactive with rewording'
   4
   5. ./test-lib.sh
   6
   7. "$TEST_DIRECTORY"/lib-rebase.sh
   8
   9test_expect_success 'setup' '
  10        test_commit master file-1 test &&
  11
  12        git checkout -b stuff &&
  13
  14        test_commit feature_a file-2 aaa &&
  15        test_commit feature_b file-2 ddd
  16'
  17
  18test_expect_success 'reword without issues functions as intended' '
  19        test_when_finished "reset_rebase" &&
  20
  21        git checkout stuff^0 &&
  22
  23        set_fake_editor &&
  24        FAKE_LINES="pick 1 reword 2" FAKE_COMMIT_MESSAGE="feature_b_reworded" \
  25                git rebase -i -v master &&
  26
  27        test "$(git log -1 --format=%B)" = "feature_b_reworded" &&
  28        test $(git rev-list --count HEAD) = 3
  29'
  30
  31test_expect_success 'reword after a conflict preserves commit' '
  32        test_when_finished "reset_rebase" &&
  33
  34        git checkout stuff^0 &&
  35
  36        set_fake_editor &&
  37        test_must_fail env FAKE_LINES="reword 2" \
  38                git rebase -i -v master &&
  39
  40        git checkout --theirs file-2 &&
  41        git add file-2 &&
  42        FAKE_COMMIT_MESSAGE="feature_b_reworded" git rebase --continue &&
  43
  44        test "$(git log -1 --format=%B)" = "feature_b_reworded" &&
  45        test $(git rev-list --count HEAD) = 2
  46'
  47
  48test_done