Make sure the todo list ends up using single-letter command abbreviations when the rebase.abbreviateCommands is enabled. This configuration options should not change anything else. Signed-off-by: Liam Beguin <liambeguin@xxxxxxxxx> --- t/t3404-rebase-interactive.sh | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/t/t3404-rebase-interactive.sh b/t/t3404-rebase-interactive.sh index 6a82d1ed876d..e460ebde3393 100755 --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@ -1260,6 +1260,38 @@ test_expect_success 'rebase -i respects rebase.missingCommitsCheck = error' ' test B = $(git cat-file commit HEAD^ | sed -ne \$p) ' +test_expect_success 'prepare rebase.abbreviateCommands' ' + reset_rebase && + git checkout -b abbrevcmd master && + test_commit "first" file1.txt "first line" first && + test_commit "second" file1.txt "another line" second && + test_commit "fixup! first" file2.txt "first line again" first_fixup && + test_commit "squash! second" file1.txt "another line here" second_squash +' + +cat >expected <<EOF && +p $(git rev-list --abbrev-commit -1 first) first +f $(git rev-list --abbrev-commit -1 first_fixup) fixup! first +x git show HEAD +p $(git rev-list --abbrev-commit -1 second) second +s $(git rev-list --abbrev-commit -1 second_squash) squash! second +x git show HEAD +EOF + +test_expect_success 'respects rebase.abbreviateCommands with fixup, squash and exec' ' + test_when_finished " + git checkout master && + test_might_fail git branch -D abbrevcmd && + test_might_fail git rebase --abort + " && + git checkout abbrevcmd && + set_cat_todo_editor && + test_config rebase.abbreviateCommands true && + test_must_fail git rebase -i --exec "git show HEAD" \ + --autosquash master >actual && + test_cmp expected actual +' + test_expect_success 'static check of bad command' ' rebase_setup_and_clean bad-cmd && set_fake_editor && -- 2.15.0.321.g19bf2bb99cee.dirty