t / t4004-diff-rename-symlink.shon commit config: don't implicitly use gitdir or commondir (dc8441f)
   1#!/bin/sh
   2#
   3# Copyright (c) 2005 Junio C Hamano
   4#
   5
   6test_description='More rename detection tests.
   7
   8The rename detection logic should be able to detect pure rename or
   9copy of symbolic links, but should not produce rename/copy followed
  10by an edit for them.
  11'
  12. ./test-lib.sh
  13. "$TEST_DIRECTORY"/diff-lib.sh
  14
  15test_expect_success SYMLINKS \
  16    'prepare reference tree' \
  17    'echo xyzzy | tr -d '\\\\'012 >yomin &&
  18     ln -s xyzzy frotz &&
  19    git update-index --add frotz yomin &&
  20    tree=$(git write-tree) &&
  21    echo $tree'
  22
  23test_expect_success SYMLINKS \
  24    'prepare work tree' \
  25    'mv frotz rezrov &&
  26     rm -f yomin &&
  27     ln -s xyzzy nitfol &&
  28     ln -s xzzzy bozbar &&
  29    git update-index --add --remove frotz rezrov nitfol bozbar yomin'
  30
  31# tree has frotz pointing at xyzzy, and yomin that contains xyzzy to
  32# confuse things.  work tree has rezrov (xyzzy) nitfol (xyzzy) and
  33# bozbar (xzzzy).
  34# rezrov and nitfol are rename/copy of frotz and bozbar should be
  35# a new creation.
  36
  37test_expect_success SYMLINKS 'setup diff output' "
  38    GIT_DIFF_OPTS=--unified=0 git diff-index -C -p $tree >current &&
  39    cat >expected <<\EOF
  40diff --git a/bozbar b/bozbar
  41new file mode 120000
  42--- /dev/null
  43+++ b/bozbar
  44@@ -0,0 +1 @@
  45+xzzzy
  46\ No newline at end of file
  47diff --git a/frotz b/nitfol
  48similarity index 100%
  49copy from frotz
  50copy to nitfol
  51diff --git a/frotz b/rezrov
  52similarity index 100%
  53rename from frotz
  54rename to rezrov
  55diff --git a/yomin b/yomin
  56deleted file mode 100644
  57--- a/yomin
  58+++ /dev/null
  59@@ -1 +0,0 @@
  60-xyzzy
  61\ No newline at end of file
  62EOF
  63"
  64
  65test_expect_success SYMLINKS \
  66    'validate diff output' \
  67    'compare_diff_patch current expected'
  68
  69test_done