t / t4122-apply-symlink-inside.shon commit Move write_shallow_commits to fetch-pack.c (294e15f)
   1#!/bin/sh
   2
   3test_description='apply to deeper directory without getting fooled with symlink'
   4. ./test-lib.sh
   5
   6lecho () {
   7        for l_
   8        do
   9                echo "$l_"
  10        done
  11}
  12
  13test_expect_success SYMLINKS setup '
  14
  15        mkdir -p arch/i386/boot arch/x86_64 &&
  16        lecho 1 2 3 4 5 >arch/i386/boot/Makefile &&
  17        ln -s ../i386/boot arch/x86_64/boot &&
  18        git add . &&
  19        test_tick &&
  20        git commit -m initial &&
  21        git branch test &&
  22
  23        rm arch/x86_64/boot &&
  24        mkdir arch/x86_64/boot &&
  25        lecho 2 3 4 5 6 >arch/x86_64/boot/Makefile &&
  26        git add . &&
  27        test_tick &&
  28        git commit -a -m second &&
  29
  30        git format-patch --binary -1 --stdout >test.patch
  31
  32'
  33
  34test_expect_success SYMLINKS apply '
  35
  36        git checkout test &&
  37        git diff --exit-code test &&
  38        git diff --exit-code --cached test &&
  39        git apply --index test.patch
  40
  41'
  42
  43test_expect_success SYMLINKS 'check result' '
  44
  45        git diff --exit-code master &&
  46        git diff --exit-code --cached master &&
  47        test_tick &&
  48        git commit -m replay &&
  49        T1=$(git rev-parse "master^{tree}") &&
  50        T2=$(git rev-parse "HEAD^{tree}") &&
  51        test "z$T1" = "z$T2"
  52
  53'
  54
  55test_done