get_sha1(): fix error status regression
[gitweb.git] / git-cvsexportcommit.perl
index a36df3392652b8a854ca48bdf71977dcf12b244b..e6bf25232c4ec27fc98f78e076678ae4d0a524c1 100755 (executable)
@@ -1,6 +1,8 @@
-#!/usr/bin/perl -w
+#!/usr/bin/perl
 
+use 5.008;
 use strict;
+use warnings;
 use Getopt::Std;
 use File::Temp qw(tempdir);
 use Data::Dumper;
                chomp($gd);
                $ENV{GIT_DIR} = $gd;
        }
+
+       # On MSYS, convert a Windows-style path to an MSYS-style path
+       # so that rel2abs() below works correctly.
+       if ($^O eq 'msys') {
+               $ENV{GIT_DIR} =~ s#^([[:alpha:]]):/#/$1/#;
+       }
+
        # Make sure GIT_DIR is absolute
        $ENV{GIT_DIR} = File::Spec->rel2abs($ENV{GIT_DIR});
 }
            if $file =~ /^no file /
                && $status eq 'Up-to-date';
 
-       $cvsstat{$fullname{$file}} = $status;
+       $cvsstat{$fullname{$file}} = $status
+           if defined $fullname{$file};
       }
     }
 }
        while (<FILTER_IN>)
        {
            my $line = $_;
-           $line =~ s/\$([A-Z][a-z]+):[^\$]+\$/\$\1\$/g;
+           $line =~ s/\$([A-Z][a-z]+):[^\$]+\$/\$$1\$/g;
            print FILTER_OUT $line;
        }
        close FILTER_IN;