Browse Source

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>
maint
Pete Wyckoff 12 years ago committed by Jeff King
parent
commit
6b2bf41e6c
  1. 2
      git-p4.py
  2. 19
      t/t9810-git-p4-rcs.sh

2
git-p4.py

@ -227,7 +227,7 @@ def p4_keywords_regexp_for_type(base, type_mods): @@ -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

19
t/t9810-git-p4-rcs.sh

@ -155,6 +155,25 @@ test_expect_success 'cleanup after failure' ' @@ -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

Loading…
Cancel
Save