Merge branch 'ak/t5516-typofix'
authorJunio C Hamano <gitster@pobox.com>
Fri, 6 Mar 2015 23:02:32 +0000 (15:02 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 6 Mar 2015 23:02:32 +0000 (15:02 -0800)
* ak/t5516-typofix:
t5516: correct misspelled pushInsteadOf

1  2 
t/t5516-fetch-push.sh
diff --combined t/t5516-fetch-push.sh
index e4436c170088a69b9efc5712a55bbe1d4bb8113f,393285ac35becf65322f4e3e67f96544b41f10c2..630885d6df2fed0b8ba35005f150ccd3838dfcca
@@@ -11,7 -11,6 +11,7 @@@ This test checks the following function
  * hooks
  * --porcelain output format
  * hiderefs
 +* reflogs
  '
  
  . ./test-lib.sh
@@@ -238,7 -237,7 +238,7 @@@ test_expect_success 'push with pushInst
  test_expect_success 'push with pushInsteadOf and explicit pushurl (pushInsteadOf should not rewrite)' '
        mk_empty testrepo &&
        test_config "url.trash2/.pushInsteadOf" testrepo/ &&
-       test_config "url.trash3/.pusnInsteadOf" trash/wrong &&
+       test_config "url.trash3/.pushInsteadOf" trash/wrong &&
        test_config remote.r.url trash/wrong &&
        test_config remote.r.pushurl "testrepo/" &&
        git push r refs/heads/master:refs/remotes/origin/master &&
        git push --no-thin --receive-pack="$rcvpck" no-thin/.git refs/heads/master:refs/heads/foo
  '
  
 +test_expect_success 'pushing a tag pushes the tagged object' '
 +      rm -rf dst.git &&
 +      blob=$(echo unreferenced | git hash-object -w --stdin) &&
 +      git tag -m foo tag-of-blob $blob &&
 +      git init --bare dst.git &&
 +      git push dst.git tag-of-blob &&
 +      # the receiving index-pack should have noticed
 +      # any problems, but we double check
 +      echo unreferenced >expect &&
 +      git --git-dir=dst.git cat-file blob tag-of-blob >actual &&
 +      test_cmp expect actual
 +'
 +
 +test_expect_success 'push into bare respects core.logallrefupdates' '
 +      rm -rf dst.git &&
 +      git init --bare dst.git &&
 +      git -C dst.git config core.logallrefupdates true &&
 +
 +      # double push to test both with and without
 +      # the actual pack transfer
 +      git push dst.git master:one &&
 +      echo "one@{0} push" >expect &&
 +      git -C dst.git log -g --format="%gd %gs" one >actual &&
 +      test_cmp expect actual &&
 +
 +      git push dst.git master:two &&
 +      echo "two@{0} push" >expect &&
 +      git -C dst.git log -g --format="%gd %gs" two >actual &&
 +      test_cmp expect actual
 +'
 +
 +test_expect_success 'fetch into bare respects core.logallrefupdates' '
 +      rm -rf dst.git &&
 +      git init --bare dst.git &&
 +      (
 +              cd dst.git &&
 +              git config core.logallrefupdates true &&
 +
 +              # as above, we double-fetch to test both
 +              # with and without pack transfer
 +              git fetch .. master:one &&
 +              echo "one@{0} fetch .. master:one: storing head" >expect &&
 +              git log -g --format="%gd %gs" one >actual &&
 +              test_cmp expect actual &&
 +
 +              git fetch .. master:two &&
 +              echo "two@{0} fetch .. master:two: storing head" >expect &&
 +              git log -g --format="%gd %gs" two >actual &&
 +              test_cmp expect actual
 +      )
 +'
 +
 +test_expect_success 'receive.denyCurrentBranch = updateInstead' '
 +      git push testrepo master &&
 +      (
 +              cd testrepo &&
 +              git reset --hard &&
 +              git config receive.denyCurrentBranch updateInstead
 +      ) &&
 +      test_commit third path2 &&
 +
 +      # Try pushing into a repository with pristine working tree
 +      git push testrepo master &&
 +      (
 +              cd testrepo &&
 +              git update-index -q --refresh &&
 +              git diff-files --quiet -- &&
 +              git diff-index --quiet --cached HEAD -- &&
 +              test third = "$(cat path2)" &&
 +              test $(git -C .. rev-parse HEAD) = $(git rev-parse HEAD)
 +      ) &&
 +
 +      # Try pushing into a repository with working tree needing a refresh
 +      (
 +              cd testrepo &&
 +              git reset --hard HEAD^ &&
 +              test $(git -C .. rev-parse HEAD^) = $(git rev-parse HEAD) &&
 +              test-chmtime +100 path1
 +      ) &&
 +      git push testrepo master &&
 +      (
 +              cd testrepo &&
 +              git update-index -q --refresh &&
 +              git diff-files --quiet -- &&
 +              git diff-index --quiet --cached HEAD -- &&
 +              test_cmp ../path1 path1 &&
 +              test third = "$(cat path2)" &&
 +              test $(git -C .. rev-parse HEAD) = $(git rev-parse HEAD)
 +      ) &&
 +
 +      # Update what is to be pushed
 +      test_commit fourth path2 &&
 +
 +      # Try pushing into a repository with a dirty working tree
 +      # (1) the working tree updated
 +      (
 +              cd testrepo &&
 +              echo changed >path1
 +      ) &&
 +      test_must_fail git push testrepo master &&
 +      (
 +              cd testrepo &&
 +              test $(git -C .. rev-parse HEAD^) = $(git rev-parse HEAD) &&
 +              git diff --quiet --cached &&
 +              test changed = "$(cat path1)"
 +      ) &&
 +
 +      # (2) the index updated
 +      (
 +              cd testrepo &&
 +              echo changed >path1 &&
 +              git add path1
 +      ) &&
 +      test_must_fail git push testrepo master &&
 +      (
 +              cd testrepo &&
 +              test $(git -C .. rev-parse HEAD^) = $(git rev-parse HEAD) &&
 +              git diff --quiet &&
 +              test changed = "$(cat path1)"
 +      ) &&
 +
 +      # Introduce a new file in the update
 +      test_commit fifth path3 &&
 +
 +      # (3) the working tree has an untracked file that would interfere
 +      (
 +              cd testrepo &&
 +              git reset --hard &&
 +              echo changed >path3
 +      ) &&
 +      test_must_fail git push testrepo master &&
 +      (
 +              cd testrepo &&
 +              test $(git -C .. rev-parse HEAD^^) = $(git rev-parse HEAD) &&
 +              git diff --quiet &&
 +              git diff --quiet --cached &&
 +              test changed = "$(cat path3)"
 +      ) &&
 +
 +      # (4) the target changes to what gets pushed but it still is a change
 +      (
 +              cd testrepo &&
 +              git reset --hard &&
 +              echo fifth >path3 &&
 +              git add path3
 +      ) &&
 +      test_must_fail git push testrepo master &&
 +      (
 +              cd testrepo &&
 +              test $(git -C .. rev-parse HEAD^^) = $(git rev-parse HEAD) &&
 +              git diff --quiet &&
 +              test fifth = "$(cat path3)"
 +      )
 +
 +'
 +
 +test_expect_success 'updateInstead with push-to-checkout hook' '
 +      rm -fr testrepo &&
 +      git init testrepo &&
 +      (
 +              cd testrepo &&
 +              git pull .. master &&
 +              git reset --hard HEAD^^ &&
 +              git tag initial &&
 +              git config receive.denyCurrentBranch updateInstead &&
 +              write_script .git/hooks/push-to-checkout <<-\EOF
 +              echo >&2 updating from $(git rev-parse HEAD)
 +              echo >&2 updating to "$1"
 +
 +              git update-index -q --refresh &&
 +              git read-tree -u -m HEAD "$1" || {
 +                      status=$?
 +                      echo >&2 read-tree failed
 +                      exit $status
 +              }
 +              EOF
 +      ) &&
 +
 +      # Try pushing into a pristine
 +      git push testrepo master &&
 +      (
 +              cd testrepo &&
 +              git diff --quiet &&
 +              git diff HEAD --quiet &&
 +              test $(git -C .. rev-parse HEAD) = $(git rev-parse HEAD)
 +      ) &&
 +
 +      # Try pushing into a repository with conflicting change
 +      (
 +              cd testrepo &&
 +              git reset --hard initial &&
 +              echo conflicting >path2
 +      ) &&
 +      test_must_fail git push testrepo master &&
 +      (
 +              cd testrepo &&
 +              test $(git rev-parse initial) = $(git rev-parse HEAD) &&
 +              test conflicting = "$(cat path2)" &&
 +              git diff-index --quiet --cached HEAD
 +      ) &&
 +
 +      # Try pushing into a repository with unrelated change
 +      (
 +              cd testrepo &&
 +              git reset --hard initial &&
 +              echo unrelated >path1 &&
 +              echo irrelevant >path5 &&
 +              git add path5
 +      ) &&
 +      git push testrepo master &&
 +      (
 +              cd testrepo &&
 +              test "$(cat path1)" = unrelated &&
 +              test "$(cat path5)" = irrelevant &&
 +              test "$(git diff --name-only --cached HEAD)" = path5 &&
 +              test $(git -C .. rev-parse HEAD) = $(git rev-parse HEAD)
 +      )
 +'
 +
  test_done