Code

Teach read-tree 2-way merge to ignore intermediate symlinks
[git.git] / t / t2007-checkout-symlink.sh
diff --git a/t/t2007-checkout-symlink.sh b/t/t2007-checkout-symlink.sh
new file mode 100755 (executable)
index 0000000..0526fce
--- /dev/null
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+# Copyright (c) 2007 Junio C Hamano
+
+test_description='git checkout to switch between branches with symlink<->dir'
+
+. ./test-lib.sh
+
+test_expect_success setup '
+
+       mkdir frotz &&
+       echo hello >frotz/filfre &&
+       git add frotz/filfre &&
+       test_tick &&
+       git commit -m "master has file frotz/filfre" &&
+
+       git branch side &&
+
+       echo goodbye >nitfol &&
+       git add nitfol
+       test_tick &&
+       git commit -m "master adds file nitfol" &&
+
+       git checkout side &&
+
+       git rm --cached frotz/filfre &&
+       mv frotz xyzzy &&
+       ln -s xyzzy frotz &&
+       git add xyzzy/filfre frotz &&
+       test_tick &&
+       git commit -m "side moves frotz/ to xyzzy/ and adds frotz->xyzzy/"
+
+'
+
+test_expect_success 'switch from symlink to dir' '
+
+       git checkout master
+
+'
+
+rm -fr frotz xyzzy nitfol &&
+git checkout -f master || exit
+
+test_expect_success 'switch from dir to symlink' '
+
+       git checkout side
+
+'
+
+test_done