1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-21 17:26:09 +02:00

git p4: RCS expansion should not span newlines

This bug was introduced in cb585a9 (git-p4: keyword
flattening fixes, 2011-10-16).  The newline character
is indeed special, and $File$ expansions should not try
to match across multiple lines.

Based-on-patch-by: Chris Goard <cgoard@gmail.com>
Signed-off-by: Pete Wyckoff <pw@padd.com>
Signed-off-by: Jeff King <peff@peff.net>
This commit is contained in:
Pete Wyckoff 2012-11-04 17:04:02 -05:00 committed by Jeff King
parent 7e2010537e
commit 6b2bf41e6c
2 changed files with 20 additions and 1 deletions

View File

@ -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

View File

@ -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