From 6b2bf41e6c1c9742c5ad5b5920f48a7b23aa6a50 Mon Sep 17 00:00:00 2001 From: Pete Wyckoff Date: Sun, 4 Nov 2012 17:04:02 -0500 Subject: [PATCH] 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 Signed-off-by: Pete Wyckoff Signed-off-by: Jeff King --- git-p4.py | 2 +- t/t9810-git-p4-rcs.sh | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/git-p4.py b/git-p4.py index e67d37d2f..8dbcdc3b8 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 e9daa9c4f..12b3d8144 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 -- 2.26.2