t / t2007-checkout-symlink.shon commit Merge branch 'wp/merge-tree-fix' (ea56a7e)
   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