From: Junio C Hamano Date: Wed, 11 Sep 2013 22:02:29 +0000 (-0700) Subject: Merge branch 'es/rebase-i-no-abbrev' X-Git-Tag: v1.8.5-rc0~148 X-Git-Url: https://repo.or.cz/w/git.git/commitdiff_plain/135be1ee2b6cc5b006974e38111990f0e22accd5 Merge branch 'es/rebase-i-no-abbrev' The commit object names in the insn sheet that was prepared at the beginning of "rebase -i" session can become ambiguous as the rebasing progresses and the repository gains more commits. Make sure the internal record is kept with full 40-hex object names. * es/rebase-i-no-abbrev: rebase -i: fix short SHA-1 collision t3404: rebase -i: demonstrate short SHA-1 collision t3404: make tests more self-contained --- 135be1ee2b6cc5b006974e38111990f0e22accd5 diff --cc t/t3404-rebase-interactive.sh index 4dbeddb0de,6cdc2eadc7..50e22b1cad --- a/t/t3404-rebase-interactive.sh +++ b/t/t3404-rebase-interactive.sh @@@ -976,17 -1037,28 +1037,41 @@@ test_expect_success 'rebase -i with --s test $(cat file1) = Z ' +test_expect_success 'rebase -i error on commits with \ in message' ' + current_head=$(git rev-parse HEAD) + test_when_finished "git rebase --abort; git reset --hard $current_head; rm -f error" && + test_commit TO-REMOVE will-conflict old-content && + test_commit "\temp" will-conflict new-content dummy && + ( + EDITOR=true && + export EDITOR && + test_must_fail git rebase -i HEAD^ --onto HEAD^^ 2>error + ) && + test_expect_code 1 grep " emp" error +' + + test_expect_success 'short SHA-1 setup' ' + test_when_finished "git checkout master" && + git checkout --orphan collide && + git rm -rf . && + ( + unset test_tick && + test_commit collide1 collide && + test_commit --notick collide2 collide && + test_commit --notick collide3 collide + ) + ' + + test_expect_success 'short SHA-1 collide' ' + test_when_finished "reset_rebase && git checkout master" && + git checkout collide && + ( + unset test_tick && + test_tick && + set_fake_editor && + FAKE_COMMIT_MESSAGE="collide2 ac4f2ee" \ + FAKE_LINES="reword 1 2" git rebase -i HEAD~2 + ) + ' + test_done