mirror of
https://github.com/git/git
synced 2024-08-24 10:15:51 +00:00
![Junio C Hamano](/assets/img/avatar_default.png)
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>
97 lines
2.5 KiB
Bash
Executable file
97 lines
2.5 KiB
Bash
Executable file
#!/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
|