From: Matteo Bertini <matteo@xxxxxxxxxxxxx> The option $enable_filters skips the --no-filters option, the $path argument provide a path to be used alike the --path argument to hash-object in the non streaming invocation. Signed-off-by: Matteo Bertini <naufraghi@xxxxxxxxxxx> --- perl/Git.pm | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/perl/Git.pm b/perl/Git.pm index ce7e4e8..6c2e3fc 100644 --- a/perl/Git.pm +++ b/perl/Git.pm @@ -963,11 +963,13 @@ The function returns the SHA1 hash. # TODO: Support for passing FILEHANDLE instead of FILENAME sub hash_and_insert_object { - my ($self, $filename) = @_; - - carp "Bad filename \"$filename\"" if $filename =~ /[\r\n]/; + my ($self, $filename, $path, $enable_filters) = @_; + carp "Bad filename \"$filename\"" if $filename =~ /[\r\n\t]/; + if (defined($path)) { + $filename = join("\t", $filename, $path); + } - $self->_open_hash_and_insert_object_if_needed(); + $self->_open_hash_and_insert_object_if_needed($enable_filters); my ($in, $out) = ($self->{hash_object_in}, $self->{hash_object_out}); unless (print $out $filename, "\n") { @@ -985,13 +987,18 @@ sub hash_and_insert_object { } sub _open_hash_and_insert_object_if_needed { - my ($self) = @_; + my ($self, $enable_filters) = @_; return if defined($self->{hash_object_pid}); + my @command = qw(hash-object -w --stdin-paths); + if (!$enable_filters) { + push(@command, "--no-filters"); + } + ($self->{hash_object_pid}, $self->{hash_object_in}, $self->{hash_object_out}, $self->{hash_object_ctx}) = - $self->command_bidi_pipe(qw(hash-object -w --stdin-paths --no-filters)); + $self->command_bidi_pipe(@command); } sub _close_hash_and_insert_object { -- 2.9.0.rc0.39.gb9f310b.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html