aboutsummaryrefslogtreecommitdiff
path: root/t
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2013-03-25 14:00:49 -0700
committerJunio C Hamano <gitster@pobox.com>2013-03-25 14:00:50 -0700
commit9b12c6ed77ace7c7006afb14b66aed79bcd1ed38 (patch)
tree94191abd757859369896bc6fed29434a32918c29 /t
parent63868f636fe44b67bc56753b0e6edca32568e07c (diff)
parentbbd848633eb0a26ccd7306cb76964ab41cff6b83 (diff)
downloadgit-9b12c6ed77ace7c7006afb14b66aed79bcd1ed38.tar.gz
git-9b12c6ed77ace7c7006afb14b66aed79bcd1ed38.tar.xz
Merge branch 'pw/p4-symlinked-root'
"git p4" did not behave well when the path to the root of the P4 client was not its real path. * pw/p4-symlinked-root: git p4: avoid expanding client paths in chdir git p4 test: should honor symlink in p4 client root git p4 test: make sure P4CONFIG relative path works
Diffstat (limited to 't')
-rwxr-xr-xt/t9808-git-p4-chdir.sh41
1 files changed, 41 insertions, 0 deletions
diff --git a/t/t9808-git-p4-chdir.sh b/t/t9808-git-p4-chdir.sh
index dc92e60cd..11d2b5102 100755
--- a/t/t9808-git-p4-chdir.sh
+++ b/t/t9808-git-p4-chdir.sh
@@ -42,6 +42,47 @@ test_expect_success 'P4CONFIG and relative dir clone' '
)
'
+# Common setup using .p4config to set P4CLIENT and P4PORT breaks
+# if clone destination is relative. Make sure that chdir() expands
+# the relative path in --dest to absolute.
+test_expect_success 'p4 client root would be relative due to clone --dest' '
+ test_when_finished cleanup_git &&
+ (
+ echo P4PORT=$P4PORT >git/.p4config &&
+ P4CONFIG=.p4config &&
+ export P4CONFIG &&
+ unset P4PORT &&
+ git p4 clone --dest="git" //depot
+ )
+'
+
+# When the p4 client Root is a symlink, make sure chdir() does not use
+# getcwd() to convert it to a physical path.
+test_expect_success SYMLINKS 'p4 client root symlink should stay symbolic' '
+ physical="$TRASH_DIRECTORY/physical" &&
+ symbolic="$TRASH_DIRECTORY/symbolic" &&
+ test_when_finished "rm -rf \"$physical\"" &&
+ test_when_finished "rm \"$symbolic\"" &&
+ mkdir -p "$physical" &&
+ ln -s "$physical" "$symbolic" &&
+ test_when_finished cleanup_git &&
+ (
+ P4CLIENT=client-sym &&
+ p4 client -i <<-EOF &&
+ Client: $P4CLIENT
+ Description: $P4CLIENT
+ Root: $symbolic
+ LineEnd: unix
+ View: //depot/... //$P4CLIENT/...
+ EOF
+ git p4 clone --dest="$git" //depot &&
+ cd "$git" &&
+ test_commit file2 &&
+ git config git-p4.skipSubmitEdit true &&
+ git p4 submit
+ )
+'
+
test_expect_success 'kill p4d' '
kill_p4d
'