Hack git-add--interactive to make it work with ActiveState Perl
It wont work for arguments with special characters (like ", : or *). It is generally not possible on Windows, so I didn't even try. Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
96ffe892e3
commit
21e9757e31
@ -3,10 +3,17 @@
|
|||||||
use strict;
|
use strict;
|
||||||
|
|
||||||
sub run_cmd_pipe {
|
sub run_cmd_pipe {
|
||||||
|
if ($^O eq 'MSWin32') {
|
||||||
|
my @invalid = grep {m/[":*]/} @_;
|
||||||
|
die "$^O does not support: @invalid\n" if @invalid;
|
||||||
|
my @args = map { m/ /o ? "\"$_\"": $_ } @_;
|
||||||
|
return qx{@args};
|
||||||
|
} else {
|
||||||
my $fh = undef;
|
my $fh = undef;
|
||||||
open($fh, '-|', @_) or die;
|
open($fh, '-|', @_) or die;
|
||||||
return <$fh>;
|
return <$fh>;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
my ($GIT_DIR) = run_cmd_pipe(qw(git rev-parse --git-dir));
|
my ($GIT_DIR) = run_cmd_pipe(qw(git rev-parse --git-dir));
|
||||||
|
|
||||||
@ -17,7 +24,7 @@ chomp($GIT_DIR);
|
|||||||
|
|
||||||
sub refresh {
|
sub refresh {
|
||||||
my $fh;
|
my $fh;
|
||||||
open $fh, '-|', qw(git update-index --refresh)
|
open $fh, 'git update-index --refresh |'
|
||||||
or die;
|
or die;
|
||||||
while (<$fh>) {
|
while (<$fh>) {
|
||||||
;# ignore 'needs update'
|
;# ignore 'needs update'
|
||||||
@ -296,7 +303,7 @@ sub revert_cmd {
|
|||||||
my @lines = run_cmd_pipe(qw(git ls-tree HEAD --),
|
my @lines = run_cmd_pipe(qw(git ls-tree HEAD --),
|
||||||
map { $_->{VALUE} } @update);
|
map { $_->{VALUE} } @update);
|
||||||
my $fh;
|
my $fh;
|
||||||
open $fh, '|-', qw(git update-index --index-info)
|
open $fh, '| git update-index --index-info'
|
||||||
or die;
|
or die;
|
||||||
for (@lines) {
|
for (@lines) {
|
||||||
print $fh $_;
|
print $fh $_;
|
||||||
@ -725,7 +732,7 @@ sub patch_update_cmd {
|
|||||||
if (@result) {
|
if (@result) {
|
||||||
my $fh;
|
my $fh;
|
||||||
|
|
||||||
open $fh, '|-', qw(git apply --cached);
|
open $fh, '| git apply --cached';
|
||||||
for (@{$head->{TEXT}}, @result) {
|
for (@{$head->{TEXT}}, @result) {
|
||||||
print $fh $_;
|
print $fh $_;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user