summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBlair Holloway <blair_holloway@playstation.sony.com>2015-04-04 09:46:03 +0100
committerJunio C Hamano <gitster@pobox.com>2015-04-04 12:43:20 -0700
commit34a0dbfc6b7463a68df79d5773102f85e56cbe4d (patch)
treea822caf1c918d173462522a7ce36a2111c2cf454
parentd077c2db8db64c931976391afee6c35828868a11 (diff)
downloadgit-ld/p4-filetype-detection.tar.gz
git-p4: fix filetype detection on files opened exclusivelyld/p4-filetype-detection
If a Perforce server is configured to automatically set +l (exclusive lock) on add of certain file types, git p4 submit will fail during getP4OpenedType, as the regex doesn't expect the trailing '*exclusive*' from p4 opened: //depot/file.png#1 - add default change (binary+l) *exclusive* Signed-off-by: Blair Holloway <blair_holloway@playstation.sony.com> Acked-by: Luke Diamand <luke@diamand.org> Signed-off-by: Luke Diamand <luke@diamand.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-p4.py2
-rwxr-xr-xt/t9816-git-p4-locked.sh4
2 files changed, 3 insertions, 3 deletions
diff --git a/git-p4.py b/git-p4.py
index 549022e97c..2e1c4af191 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -368,7 +368,7 @@ def getP4OpenedType(file):
# Returns the perforce file type for the given file.
result = p4_read_pipe(["opened", wildcard_encode(file)])
- match = re.match(".*\((.+)\)\r?$", result)
+ match = re.match(".*\((.+)\)( \*exclusive\*)?\r?$", result)
if match:
return match.group(1)
else:
diff --git a/t/t9816-git-p4-locked.sh b/t/t9816-git-p4-locked.sh
index 464f10bd49..d048bd33fa 100755
--- a/t/t9816-git-p4-locked.sh
+++ b/t/t9816-git-p4-locked.sh
@@ -35,7 +35,7 @@ test_expect_success 'edit with lock not taken' '
)
'
-test_expect_failure 'add with lock not taken' '
+test_expect_success 'add with lock not taken' '
test_when_finished cleanup_git &&
git p4 clone --dest="$git" //depot &&
(
@@ -107,7 +107,7 @@ test_expect_failure 'chmod with lock taken' '
)
'
-test_expect_failure 'copy with lock taken' '
+test_expect_success 'copy with lock taken' '
lock_in_another_client &&
test_when_finished cleanup_git &&
test_when_finished "cd \"$cli\" && p4 revert file2 && rm -f file2" &&