summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-11-28 12:04:32 -0800
committerJunio C Hamano <gitster@pobox.com>2012-11-28 12:04:50 -0800
commit2a7f6ffb9168c2e0d1f4ca9c1b63357e431093e9 (patch)
tree6f857fe670e7c1c6cfd434233e884ab15cb1d9da
parent4047fecf714e8ffdc4ae199f9cd3ee2d50b0259c (diff)
parent6b2bf41e6c1c9742c5ad5b5920f48a7b23aa6a50 (diff)
downloadgit-2a7f6ffb9168c2e0d1f4ca9c1b63357e431093e9.tar.gz
Merge branch 'pw/maint-p4-rcs-expansion-newline' into maint
"git p4" used to try expanding malformed "$keyword$" that spans across multiple lines. * pw/maint-p4-rcs-expansion-newline: git p4: RCS expansion should not span newlines
-rwxr-xr-xgit-p4.py2
-rwxr-xr-xt/t9810-git-p4-rcs.sh19
2 files changed, 20 insertions, 1 deletions
diff --git a/git-p4.py b/git-p4.py
index 882b1bbab5..7d6c928c3f 100755
--- a/git-p4.py
+++ b/git-p4.py
@@ -227,7 +227,7 @@ def p4_keywords_regexp_for_type(base, type_mods):
pattern = r"""
\$ # Starts with a dollar, followed by...
(%s) # one of the keywords, followed by...
- (:[^$]+)? # possibly an old expansion, followed by...
+ (:[^$\n]+)? # possibly an old expansion, followed by...
\$ # another dollar
""" % kwords
return pattern
diff --git a/t/t9810-git-p4-rcs.sh b/t/t9810-git-p4-rcs.sh
index fe30ad881f..0c2fc3ea1a 100755
--- a/t/t9810-git-p4-rcs.sh
+++ b/t/t9810-git-p4-rcs.sh
@@ -155,6 +155,25 @@ test_expect_success 'cleanup after failure' '
)
'
+# perl $File:: bug check
+test_expect_success 'ktext expansion should not expand multi-line $File::' '
+ (
+ cd "$cli" &&
+ cat >lv.pm <<-\EOF
+ my $wanted = sub { my $f = $File::Find::name;
+ if ( -f && $f =~ /foo/ ) {
+ EOF
+ p4 add -t ktext lv.pm &&
+ p4 submit -d "lv.pm"
+ ) &&
+ test_when_finished cleanup_git &&
+ git p4 clone --dest="$git" //depot &&
+ (
+ cd "$git" &&
+ test_cmp "$cli/lv.pm" lv.pm
+ )
+'
+
#
# Do not scrub anything but +k or +ko files. Sneak a change into
# the cli file so that submit will get a conflict. Make sure that