t / t7515-status-symlinks.shon commit t4045: abstract away SHA-1-specific constants (5c02428)
   1#!/bin/sh
   2
   3test_description='git status and symlinks'
   4
   5. ./test-lib.sh
   6
   7test_expect_success 'setup' '
   8        echo .gitignore >.gitignore &&
   9        echo actual >>.gitignore &&
  10        echo expect >>.gitignore &&
  11        mkdir dir &&
  12        echo x >dir/file1 &&
  13        echo y >dir/file2 &&
  14        git add dir &&
  15        git commit -m initial &&
  16        git tag initial
  17'
  18
  19test_expect_success SYMLINKS 'symlink to a directory' '
  20        test_when_finished "rm symlink" &&
  21        ln -s dir symlink &&
  22        echo "?? symlink" >expect &&
  23        git status --porcelain >actual &&
  24        test_cmp expect actual
  25'
  26
  27test_expect_success SYMLINKS 'symlink replacing a directory' '
  28        test_when_finished "rm -rf copy && git reset --hard initial" &&
  29        mkdir copy &&
  30        cp dir/file1 copy/file1 &&
  31        echo "changed in copy" >copy/file2 &&
  32        git add copy &&
  33        git commit -m second &&
  34        rm -rf copy &&
  35        ln -s dir copy &&
  36        echo " D copy/file1" >expect &&
  37        echo " D copy/file2" >>expect &&
  38        echo "?? copy" >>expect &&
  39        git status --porcelain >actual &&
  40        test_cmp expect actual
  41'
  42
  43test_done