Browse Source

Add tests to catch problems with un-unlinkable symlinks

This currently fails not because we refuse to check out, but because we
detect error but incorrectly discard it in the callchain.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Junio C Hamano 17 years ago
parent
commit
8a785dc921
  1. 35
      t/t1004-read-tree-m-u-wf.sh

35
t/t1004-read-tree-m-u-wf.sh

@ -157,6 +157,41 @@ test_expect_success '3-way not overwriting local changes (their side)' ' @@ -157,6 +157,41 @@ test_expect_success '3-way not overwriting local changes (their side)' '

'

test_expect_success 'funny symlink in work tree' '

git reset --hard &&
git checkout -b sym-b side-b &&
mkdir -p a &&
>a/b &&
git add a/b &&
git commit -m "side adds a/b" &&

rm -fr a &&
git checkout -b sym-a side-a &&
mkdir -p a &&
ln -s ../b a/b &&
git add a/b &&
git commit -m "we add a/b" &&

git read-tree -m -u sym-a sym-a sym-b

'

test_expect_failure 'funny symlink in work tree, un-unlink-able' '

rm -fr a b &&
git reset --hard &&

git checkout sym-a &&
chmod a-w a &&
test_must_fail git read-tree -m -u sym-a sym-a sym-b

'

# clean-up from the above test
chmod a+w a
rm -fr a b

test_expect_success 'D/F setup' '

git reset --hard &&

Loading…
Cancel
Save