diff options
author | Pete Wyckoff <pw@padd.com> | 2012-11-04 17:04:02 -0500 |
---|---|---|
committer | Jeff King <peff@peff.net> | 2012-11-08 12:46:14 -0500 |
commit | 6b2bf41e6c1c9742c5ad5b5920f48a7b23aa6a50 (patch) | |
tree | aac1a6d862433fb4f4a1a7e93d4ec8eb842e71ee | |
parent | 7e2010537e96d0a1144520222f20ba1dc3d61441 (diff) | |
download | git-6b2bf41e6c1c9742c5ad5b5920f48a7b23aa6a50.tar.gz |
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>
-rwxr-xr-x | git-p4.py | 2 | ||||
-rwxr-xr-x | t/t9810-git-p4-rcs.sh | 19 |
2 files changed, 20 insertions, 1 deletions
@@ -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 e9daa9c4f6..12b3d81449 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 |