git-commit-vandalism/t/t2000-checkout-cache-clash.sh
Junio C Hamano 215a7ad1ef Big tool rename.
As promised, this is the "big tool rename" patch.  The primary differences
since 0.99.6 are:

  (1) git-*-script are no more.  The commands installed do not
      have any such suffix so users do not have to remember if
      something is implemented as a shell script or not.

  (2) Many command names with 'cache' in them are renamed with
      'index' if that is what they mean.

There are backward compatibility symblic links so that you and
Porcelains can keep using the old names, but the backward
compatibility support  is expected to be removed in the near
future.

Signed-off-by: Junio C Hamano <junkio@cox.net>
2005-09-07 17:45:20 -07:00

54 lines
1.2 KiB
Bash
Executable File

#!/bin/sh
#
# Copyright (c) 2005 Junio C Hamano
#
test_description='git-checkout-index test.
This test registers the following filesystem structure in the
cache:
path0 - a file
path1/file1 - a file in a directory
And then tries to checkout in a work tree that has the following:
path0/file0 - a file in a directory
path1 - a file
The git-checkout-index command should fail when attempting to checkout
path0, finding it is occupied by a directory, and path1/file1, finding
path1 is occupied by a non-directory. With "-f" flag, it should remove
the conflicting paths and succeed.
'
. ./test-lib.sh
date >path0
mkdir path1
date >path1/file1
test_expect_success \
'git-update-index --add various paths.' \
'git-update-index --add path0 path1/file1'
rm -fr path0 path1
mkdir path0
date >path0/file0
date >path1
test_expect_failure \
'git-checkout-index without -f should fail on conflicting work tree.' \
'git-checkout-index -a'
test_expect_success \
'git-checkout-index with -f should succeed.' \
'git-checkout-index -f -a'
test_expect_success \
'git-checkout-index conflicting paths.' \
'test -f path0 && test -d path1 && test -f path1/file1'
test_done