1#!/bin/sh
2#
3# Copyright (c) 2007 Junio C Hamano
4
5test_description='git checkout to switch between branches with symlink<->dir'
6
7. ./test-lib.sh
8
9if ! test_have_prereq SYMLINKS
10then
11 skip_all="symbolic links not supported - skipping tests"
12 test_done
13fi
14
15test_expect_success setup '
16
17 mkdir frotz &&
18 echo hello >frotz/filfre &&
19 git add frotz/filfre &&
20 test_tick &&
21 git commit -m "master has file frotz/filfre" &&
22
23 git branch side &&
24
25 echo goodbye >nitfol &&
26 git add nitfol
27 test_tick &&
28 git commit -m "master adds file nitfol" &&
29
30 git checkout side &&
31
32 git rm --cached frotz/filfre &&
33 mv frotz xyzzy &&
34 ln -s xyzzy frotz &&
35 git add xyzzy/filfre frotz &&
36 test_tick &&
37 git commit -m "side moves frotz/ to xyzzy/ and adds frotz->xyzzy/"
38
39'
40
41test_expect_success 'switch from symlink to dir' '
42
43 git checkout master
44
45'
46
47test_expect_success 'Remove temporary directories & switch to master' '
48 rm -fr frotz xyzzy nitfol &&
49 git checkout -f master
50'
51
52test_expect_success 'switch from dir to symlink' '
53
54 git checkout side
55
56'
57
58test_done