summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-02-20 22:14:15 (GMT)
committerJunio C Hamano <junkio@cox.net>2006-02-20 22:24:05 (GMT)
commit7ae0dc015dc38ce937bb2c044ff8b4875678e8af (patch)
tree814bd2dc9f22394a7003e732e5aec7bc6ab0bb38
parente415907d6c746616f399cf2a4679372dd0cbce83 (diff)
downloadgit-7ae0dc015dc38ce937bb2c044ff8b4875678e8af.zip
git-7ae0dc015dc38ce937bb2c044ff8b4875678e8af.tar.gz
git-7ae0dc015dc38ce937bb2c044ff8b4875678e8af.tar.bz2
svnimport: avoid open "-|" list form for Perl 5.6
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rwxr-xr-xgit-svnimport.perl20
1 files changed, 16 insertions, 4 deletions
diff --git a/git-svnimport.perl b/git-svnimport.perl
index c536d70..ee2940f 100755
--- a/git-svnimport.perl
+++ b/git-svnimport.perl
@@ -10,7 +10,6 @@
# The head revision is on branch "origin" by default.
# You can change that with the '-o' option.
-require 5.008; # for shell-safe open("-|",LIST)
use strict;
use warnings;
use Getopt::Std;
@@ -322,8 +321,12 @@ sub get_file($$$) {
return undef unless defined $name;
}
- open my $F, '-|', "git-hash-object", "-w", $name
+ my $pid = open(my $F, '-|');
+ die $! unless defined $pid;
+ if (!$pid) {
+ exec("git-hash-object", "-w", $name)
or die "Cannot create object: $!\n";
+ }
my $sha = <$F>;
chomp $sha;
close $F;
@@ -398,7 +401,12 @@ sub copy_path($$$$$$$$) {
$srcpath =~ s#/*$#/#;
}
- open my $f,"-|","git-ls-tree","-r","-z",$gitrev,$srcpath;
+ my $pid = open my $f,'-|';
+ die $! unless defined $pid;
+ if (!$pid) {
+ exec("git-ls-tree","-r","-z",$gitrev,$srcpath)
+ or die $!;
+ }
local $/ = "\0";
while(<$f>) {
chomp;
@@ -554,7 +562,11 @@ sub commit {
@o1 = @old;
@old = ();
}
- open my $F, "-|", "git-ls-files", "-z", @o1 or die $!;
+ my $pid = open my $F, "-|";
+ die "$!" unless defined $pid;
+ if (!$pid) {
+ exec("git-ls-files", "-z", @o1) or die $!;
+ }
@o1 = ();
local $/ = "\0";
while(<$F>) {