Andrew's git
/
gitweb.git
/ diff
summary
|
log
|
commit
| diff |
tree
commit
grep
author
committer
pickaxe
?
re
Hack git-add--interactive to make it work with ActiveState Perl
author
Alex Riesen
<raa.lkml@gmail.com>
Wed, 1 Aug 2007 12:57:43 +0000
(14:57 +0200)
committer
Junio C Hamano
<gitster@pobox.com>
Thu, 2 Aug 2007 00:58:12 +0000
(17:58 -0700)
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>
git-add--interactive.perl
patch
|
blob
|
history
raw
|
patch
|
inline
| side by side (parent:
96ffe89
)
diff --git
a/git-add--interactive.perl
b/git-add--interactive.perl
index dc3038091dd7db7dd4bb96cf8832df789b4d127f..7921cde8cbd3b58f1d7222e9828bf85e10f363e3 100755
(executable)
--- a/
git-add--interactive.perl
+++ b/
git-add--interactive.perl
@@
-3,9
+3,16
@@
use strict;
sub run_cmd_pipe {
use strict;
sub run_cmd_pipe {
- my $fh = undef;
- open($fh, '-|', @_) or die;
- return <$fh>;
+ 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;
+ open($fh, '-|', @_) or die;
+ 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
@@
sub run_cmd_pipe {
sub refresh {
my $fh;
sub refresh {
my $fh;
- open $fh, '
-|', qw(git update-index --refresh)
+ open $fh, '
git update-index --refresh |'
or die;
while (<$fh>) {
;# ignore 'needs update'
or die;
while (<$fh>) {
;# ignore 'needs update'
@@
-296,7
+303,7
@@
sub revert_cmd {
my @lines = run_cmd_pipe(qw(git ls-tree HEAD --),
map { $_->{VALUE} } @update);
my $fh;
my @lines = run_cmd_pipe(qw(git ls-tree HEAD --),
map { $_->{VALUE} } @update);
my $fh;
- open $fh, '|
-', qw(git update-index --index-info)
+ open $fh, '|
git update-index --index-info'
or die;
for (@lines) {
print $fh $_;
or die;
for (@lines) {
print $fh $_;
@@
-725,7
+732,7
@@
sub patch_update_cmd {
if (@result) {
my $fh;
if (@result) {
my $fh;
- open $fh, '|
-', qw(git apply --cached)
;
+ open $fh, '|
git apply --cached'
;
for (@{$head->{TEXT}}, @result) {
print $fh $_;
}
for (@{$head->{TEXT}}, @result) {
print $fh $_;
}