Merge branch 'es/rebase-i-no-abbrev' into maint
authorJunio C Hamano <gitster@pobox.com>
Thu, 17 Oct 2013 22:45:50 +0000 (15:45 -0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 17 Oct 2013 22:45:50 +0000 (15:45 -0700)
* 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

Conflicts:
t/t3404-rebase-interactive.sh

1  2 
git-rebase--interactive.sh
t/t3404-rebase-interactive.sh
Simple merge
index 4dbeddb0de17eb9fa87fbed98daabcb180235555,6cdc2eadc7425f3c067b114460d2052d66402b2d..50e22b1cadff4252dfb552a4db930f49544952aa
@@@ -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