Skip to content

Commit

Permalink
Merge branch 'jc/perl' into next
Browse files Browse the repository at this point in the history
* jc/perl:
  cvsimport: avoid open "-|" list form for Perl 5.6
  svnimport: avoid open "-|" list form for Perl 5.6
  send-email: avoid open "-|" list form for Perl 5.6
  rerere: avoid open "-|" list form for Perl 5.6
  fmt-merge-msg: avoid open "-|" list form for Perl 5.6
  • Loading branch information
Junio C Hamano committed Feb 20, 2006
2 parents 0c82a39 + dd27478 commit 9896845
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 30 deletions.
6 changes: 5 additions & 1 deletion git-cvsimport.perl
Original file line number Diff line number Diff line change
Expand Up @@ -846,8 +846,12 @@ ($$)
print "Drop $fn\n" if $opt_v;
} else {
print "".($init ? "New" : "Update")." $fn: $size bytes\n" if $opt_v;
open my $F, '-|', "git-hash-object -w $tmpname"
my $pid = open(my $F, '-|');
die $! unless defined $pid;
if (!$pid) {
exec("git-hash-object", "-w", $tmpname)
or die "Cannot create object: $!\n";
}
my $sha = <$F>;
chomp $sha;
close $F;
Expand Down
24 changes: 16 additions & 8 deletions git-fmt-merge-msg.perl
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,12 @@ sub andjoin {
}

sub repoconfig {
my $fh;
my $val;
eval {
open $fh, '-|', 'git-repo-config', '--get', 'merge.summary'
or die "$!";
my $pid = open(my $fh, '-|');
if (!$pid) {
exec('git-repo-config', '--get', 'merge.summary');
}
($val) = <$fh>;
close $fh;
};
Expand All @@ -41,25 +42,32 @@ sub repoconfig {

sub current_branch {
my $fh;
open $fh, '-|', 'git-symbolic-ref', 'HEAD' or die "$!";
my $pid = open($fh, '-|');
die "$!" unless defined $pid;
if (!$pid) {
exec('git-symbolic-ref', 'HEAD') or die "$!";
}
my ($bra) = <$fh>;
chomp($bra);
close $fh or die "$!";
$bra =~ s|^refs/heads/||;
if ($bra ne 'master') {
$bra = " into $bra";
} else {
$bra = "";
}

return $bra;
}

sub shortlog {
my ($tip, $limit) = @_;
my ($fh, @result);
open $fh, '-|', ('git-log', "--max-count=$limit", '--topo-order',
'--pretty=oneline', $tip, '^HEAD')
or die "$!";
my $pid = open($fh, '-|');
die "$!" unless defined $pid;
if (!$pid) {
exec('git-log', "--max-count=$limit", '--topo-order',
'--pretty=oneline', $tip, '^HEAD') or die "$!";
}
while (<$fh>) {
s/^[0-9a-f]{40}\s+//;
push @result, $_;
Expand Down
6 changes: 5 additions & 1 deletion git-rerere.perl
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,11 @@ sub record_preimage {
sub find_conflict {
my $in;
local $/ = "\0";
open $in, '-|', qw(git ls-files -z -u) or die "$!: ls-files";
my $pid = open($in, '-|');
die "$!" unless defined $pid;
if (!$pid) {
exec(qw(git ls-files -z -u)) or die "$!: ls-files";
}
my %path = ();
my @path = ();
while (<$in>) {
Expand Down
37 changes: 21 additions & 16 deletions git-send-email.perl
Original file line number Diff line number Diff line change
Expand Up @@ -59,24 +59,29 @@

# Now, let's fill any that aren't set in with defaults:

open(GITVAR,"-|","git-var","-l")
or die "Failed to open pipe from git-var: $!";

my ($author,$committer);
while(<GITVAR>) {
chomp;
my ($var,$data) = split /=/,$_,2;
my @fields = split /\s+/, $data;

my $ident = join(" ", @fields[0...(@fields-3)]);
sub gitvar {
my ($var) = @_;
my $fh;
my $pid = open($fh, '-|');
die "$!" unless defined $pid;
if (!$pid) {
exec('git-var', $var) or die "$!";
}
my ($val) = <$fh>;
close $fh or die "$!";
chomp($val);
return $val;
}

if ($var eq 'GIT_AUTHOR_IDENT') {
$author = $ident;
} elsif ($var eq 'GIT_COMMITTER_IDENT') {
$committer = $ident;
}
sub gitvar_ident {
my ($name) = @_;
my $val = gitvar($name);
my @field = split(/\s+/, $val);
return join(' ', @field[0...(@field-3)]);
}
close(GITVAR);

my ($author) = gitvar_ident('GIT_AUTHOR_IDENT');
my ($committer) = gitvar_ident('GIT_COMMITTER_IDENT');

my $prompting = 0;
if (!defined $from) {
Expand Down
20 changes: 16 additions & 4 deletions git-svnimport.perl
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -322,8 +321,12 @@ ($$$)
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;
Expand Down Expand Up @@ -398,7 +401,12 @@ ($$$$$$$$)
$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;
Expand Down Expand Up @@ -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>) {
Expand Down

0 comments on commit 9896845

Please sign in to comment.