Robin Rosenberg <robin.rosenberg@xxxxxxxxxx> writes: >> It would also be nice to rework this program so that it can work >> with whitespaces in pathnames. I do not think it currently >> works with them at all. > > I sent a patch earlier, which was not applied, due to imperfections that I > cannot solve fully. One issue was that patch 2.5.9 was required and hacking > it to handle binary diffs with spaces would require and even worse kludge, I suspect that we should not be using patch, but instead be using git-apply perhaps with -C option if people want fuzz. >> It appears that this program was never used in western >> hemisphere, by the way ;-). > > Now, Sweden is definitely in the northern hemisphere, even during the cold > war, though a number of computer games colored it red (or was it only > Finland) during the cold war. I know this script originally came from southern hemisphere, but I was talking about _western_ hemisphere. The comment refers to the part of the code the attached patch fixes, which I will apply along with your updated patch. > The tests work with my locale (swedish ISO-8859-15), even though they like > all other tests run in the C "hemishpere" by default. AFAIK, git isn't very > user friendly with non-ascii filenames as it is today and cvsexportcommit > didn't work on such files before, and it doesn't now. No change there. That is a separate issue. I think scripts that work with git plumbing should read from -z output when they need to and are capable of, as we have done for git-cvsserver recently, and things written in Perl certainly are capable of doing so. diff --git a/git-cvsexportcommit.perl b/git-cvsexportcommit.perl index facb466..b1cc014 100755 --- a/git-cvsexportcommit.perl +++ b/git-cvsexportcommit.perl @@ -68,9 +68,9 @@ foreach my $line (@commit) { if ($stage eq 'headers') { if ($line =~ m/^parent (\w{40})$/) { # found a parent push @parents, $1; - } elsif ($line =~ m/^author (.+) \d+ \+\d+$/) { + } elsif ($line =~ m/^author (.+) \d+ [-+]\d+$/) { $author = $1; - } elsif ($line =~ m/^committer (.+) \d+ \+\d+$/) { + } elsif ($line =~ m/^committer (.+) \d+ [-+]\d+$/) { $committer = $1; } } else { - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html