Revision 51a94af845cb3f797abd638478834721d7295af7 authored by Junio C Hamano on 17 October 2008, 06:37:44 UTC, committed by Junio C Hamano on 17 October 2008, 21:35:06 UTC
The test to make sure that checkout fails when --track was asked for and
we cannot set up tracking information in t7201 was wrong, and it turns out
that the implementation for that feature itself was buggy.  This fixes it.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent 8ed0a74
Raw File
t2003-checkout-cache-mkdir.sh
#!/bin/sh
#
# Copyright (c) 2005 Junio C Hamano
#

test_description='git checkout-index --prefix test.

This test makes sure that --prefix option works as advertised, and
also verifies that such leading path may contain symlinks, unlike
the GIT controlled paths.
'

. ./test-lib.sh

test_expect_success \
    'setup' \
    'mkdir path1 &&
    echo frotz >path0 &&
    echo rezrov >path1/file1 &&
    git update-index --add path0 path1/file1'

test_expect_success \
    'have symlink in place where dir is expected.' \
    'rm -fr path0 path1 &&
     mkdir path2 &&
     ln -s path2 path1 &&
     git checkout-index -f -a &&
     test ! -h path1 && test -d path1 &&
     test -f path1/file1 && test ! -f path2/file1'

test_expect_success \
    'use --prefix=path2/' \
    'rm -fr path0 path1 path2 &&
     mkdir path2 &&
     git checkout-index --prefix=path2/ -f -a &&
     test -f path2/path0 &&
     test -f path2/path1/file1 &&
     test ! -f path0 &&
     test ! -f path1/file1'

test_expect_success \
    'use --prefix=tmp-' \
    'rm -fr path0 path1 path2 tmp* &&
     git checkout-index --prefix=tmp- -f -a &&
     test -f tmp-path0 &&
     test -f tmp-path1/file1 &&
     test ! -f path0 &&
     test ! -f path1/file1'

test_expect_success \
    'use --prefix=tmp- but with a conflicting file and dir' \
    'rm -fr path0 path1 path2 tmp* &&
     echo nitfol >tmp-path1 &&
     mkdir tmp-path0 &&
     git checkout-index --prefix=tmp- -f -a &&
     test -f tmp-path0 &&
     test -f tmp-path1/file1 &&
     test ! -f path0 &&
     test ! -f path1/file1'

# Linus fix #1
test_expect_success \
    'use --prefix=tmp/orary/ where tmp is a symlink' \
    'rm -fr path0 path1 path2 tmp* &&
     mkdir tmp1 tmp1/orary &&
     ln -s tmp1 tmp &&
     git checkout-index --prefix=tmp/orary/ -f -a &&
     test -d tmp1/orary &&
     test -f tmp1/orary/path0 &&
     test -f tmp1/orary/path1/file1 &&
     test -h tmp'

# Linus fix #2
test_expect_success \
    'use --prefix=tmp/orary- where tmp is a symlink' \
    'rm -fr path0 path1 path2 tmp* &&
     mkdir tmp1 &&
     ln -s tmp1 tmp &&
     git checkout-index --prefix=tmp/orary- -f -a &&
     test -f tmp1/orary-path0 &&
     test -f tmp1/orary-path1/file1 &&
     test -h tmp'

# Linus fix #3
test_expect_success \
    'use --prefix=tmp- where tmp-path1 is a symlink' \
    'rm -fr path0 path1 path2 tmp* &&
     mkdir tmp1 &&
     ln -s tmp1 tmp-path1 &&
     git checkout-index --prefix=tmp- -f -a &&
     test -f tmp-path0 &&
     test ! -h tmp-path1 &&
     test -d tmp-path1 &&
     test -f tmp-path1/file1'

test_done
back to top