git-svn: reduce scope of input record separator change
Reducing the scope of where we change the record separator ($/) avoids bugs in calls which rely on the input record separator further down, such as the 'chomp' usage in command_oneline. This is necessary for a future change to git-svn, but exists in Git.pm since it seems useful for gitweb and our other Perl scripts, too. Signed-off-by: Eric Wong <e@80x24.org>
This commit is contained in:
@ -7,7 +7,9 @@ use SVN::Delta;
|
||||
use Carp qw/croak/;
|
||||
use Git qw/command command_oneline command_noisy command_output_pipe
|
||||
command_input_pipe command_close_pipe
|
||||
command_bidi_pipe command_close_bidi_pipe/;
|
||||
command_bidi_pipe command_close_bidi_pipe
|
||||
get_record/;
|
||||
|
||||
BEGIN {
|
||||
@ISA = qw(SVN::Delta::Editor);
|
||||
}
|
||||
@ -57,11 +59,9 @@ sub generate_diff {
|
||||
push @diff_tree, "-l$_rename_limit" if defined $_rename_limit;
|
||||
push @diff_tree, $tree_a, $tree_b;
|
||||
my ($diff_fh, $ctx) = command_output_pipe(@diff_tree);
|
||||
local $/ = "\0";
|
||||
my $state = 'meta';
|
||||
my @mods;
|
||||
while (<$diff_fh>) {
|
||||
chomp $_; # this gets rid of the trailing "\0"
|
||||
while (defined($_ = get_record($diff_fh, "\0"))) {
|
||||
if ($state eq 'meta' && /^:(\d{6})\s(\d{6})\s
|
||||
($::sha1)\s($::sha1)\s
|
||||
([MTCRAD])\d*$/xo) {
|
||||
@ -173,9 +173,7 @@ sub rmdirs {
|
||||
|
||||
my ($fh, $ctx) = command_output_pipe(qw/ls-tree --name-only -r -z/,
|
||||
$self->{tree_b});
|
||||
local $/ = "\0";
|
||||
while (<$fh>) {
|
||||
chomp;
|
||||
while (defined($_ = get_record($fh, "\0"))) {
|
||||
my @dn = split m#/#, $_;
|
||||
while (pop @dn) {
|
||||
delete $rm->{join '/', @dn};
|
||||
|
Reference in New Issue
Block a user