t / t4004-diff-rename-symlink.shon commit Merge branch 'maint' (84b9627)
   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 \
  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 \
  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
  37GIT_DIFF_OPTS=--unified=0 git diff-index -M -p $tree >current
  38cat >expected <<\EOF
  39diff --git a/bozbar b/bozbar
  40new file mode 120000
  41--- /dev/null
  42+++ b/bozbar
  43@@ -0,0 +1 @@
  44+xzzzy
  45\ No newline at end of file
  46diff --git a/frotz b/nitfol
  47similarity index 100%
  48copy from frotz
  49copy to nitfol
  50diff --git a/frotz b/rezrov
  51similarity index 100%
  52rename from frotz
  53rename to rezrov
  54diff --git a/yomin b/yomin
  55deleted file mode 100644
  56--- a/yomin
  57+++ /dev/null
  58@@ -1 +0,0 @@
  59-xyzzy
  60\ No newline at end of file
  61EOF
  62
  63test_expect_success \
  64    'validate diff output' \
  65    'compare_diff_patch current expected'
  66
  67test_done