git/t/t9830-git-p4-symlink-dir.sh
Luke Diamand df8a9e86db git-p4: avoid crash adding symlinked directory
When submitting to P4, if git-p4 came across a symlinked
directory, then during the generation of the submit diff, it would
try to open it as a normal file and fail.

Spot symlinks (of any type) and output a description of the symlink
instead.

Add a test case.

Signed-off-by: Luke Diamand <luke@diamand.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-12-18 13:19:40 -08:00

43 lines
789 B
Bash
Executable file

#!/bin/sh
test_description='git p4 symlinked directories'
. ./lib-git-p4.sh
test_expect_success 'start p4d' '
start_p4d
'
test_expect_success 'symlinked directory' '
(
cd "$cli" &&
: >first_file.t &&
p4 add first_file.t &&
p4 submit -d "first change"
) &&
git p4 clone --dest "$git" //depot &&
(
cd "$git" &&
mkdir -p some/sub/directory &&
mkdir -p other/subdir2 &&
: > other/subdir2/file.t &&
(cd some/sub/directory && ln -s ../../../other/subdir2 .) &&
git add some other &&
git commit -m "symlinks" &&
git config git-p4.skipSubmitEdit true &&
git p4 submit -v
) &&
(
cd "$cli" &&
p4 sync &&
test -L some/sub/directory/subdir2
test_path_is_file some/sub/directory/subdir2/file.t
)
'
test_expect_success 'kill p4d' '
kill_p4d
'
test_done