All of lore.kernel.org
 help / color / mirror / Atom feed
* Fix a critical bug in git-cvsexportcommit.perl
@ 2014-09-24  8:32 Luke Lee
  2014-09-24 10:20 ` Stefan Beller
  0 siblings, 1 reply; 3+ messages in thread
From: Luke Lee @ 2014-09-24  8:32 UTC (permalink / raw)
  To: git

I fixed a long standing bug in git-cvsexportcommit.perl script which
corrupt my Perl code several times. This time I figure it out. It's
about keyword expansion. Take a simple example, a Perl code like this:

    printf "Perl/Tk $Tk::Version ($Tk::platform)\n";

will be incorrectly unexpand by git-cvsexportcommit.perl to:

    printf "Perl/Tk $Tk$Tk::platform)\n";

This happens when I try to export a git commit to a CVS working
directory *with keyword expansion turned off*. git-cvsexportcommit will
try to simulate what CVS does on unexpanding keywords. However, it *DOES
NOT* realize only valid keywords should be unexpanded. Please help apply
this patch.

Thanks.
Luke Lee

>From a33096156e376924d3a7ac2b5a42877f9aedee58 Mon Sep 17 00:00:00 2001
From: Luke Lee <luke.yx.lee@gmail.com>
Date: Wed, 24 Sep 2014 14:38:17 +0800
Subject: [PATCH] Fix a critical bug in git-cvsexportcommit.perl about
 unexpanding keywords which incorrectly delete codes that are not expanded
 keywords.

---
 git-cvsexportcommit.perl | 2 +-
 1 file changed, 1 insertions(+), 1 deletion(-)

diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl
index d13f02d..bf41a72 100755
--- a/git-cvsexportcommit.perl
+++ b/git-cvsexportcommit.perl
@@ -309,7 +309,8 @@ foreach my $f (@files) {
 	while (<FILTER_IN>)
 	{
 	    my $line = $_;
-	    $line =~ s/\$([A-Z][a-z]+):[^\$]+\$/\$$1\$/g;
+	    $line =~ s/\$(Author|Date|Header|Id|Locker|Log|RCSfile|Revision|Source|State):[^:\$][^\$]+\$/\$$1\$/g;
 	    print FILTER_OUT $line;
 	}
 	close FILTER_IN;
--
2.1.1.303.ga330961.dirty

^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-09-25  3:16 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-24  8:32 Fix a critical bug in git-cvsexportcommit.perl Luke Lee
2014-09-24 10:20 ` Stefan Beller
2014-09-25  3:15   ` Luke Lee

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.