Skip to content

Commit

Permalink
git-svn: Send deltas during commits
Browse files Browse the repository at this point in the history
Signed-off-by: Florian Weimer <fw@deneb.enyo.de>
Acked-by: Eric Wong <normalperson@yhbt.net>
  • Loading branch information
Florian Weimer authored and Eric Wong committed Sep 5, 2008
1 parent 214a34d commit 8598db9
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions git-svn.perl
Original file line number Diff line number Diff line change
Expand Up @@ -3691,12 +3691,20 @@ sub chg_file {
} elsif ($m->{mode_b} !~ /755$/ && $m->{mode_a} =~ /755$/) {
$self->change_file_prop($fbat,'svn:executable',undef);
}
my ($fh, $exp) = _chg_file_get_blob $self, $fbat, $m, 'b';
my ($fh_a, $exp_a) = _chg_file_get_blob $self, $fbat, $m, 'a';
my ($fh_b, $exp_b) = _chg_file_get_blob $self, $fbat, $m, 'b';
my $pool = SVN::Pool->new;
my $atd = $self->apply_textdelta($fbat, undef, $pool);
my $got = SVN::TxDelta::send_stream($fh, @$atd, $pool);
die "Checksum mismatch\nexpected: $exp\ngot: $got\n" if ($got ne $exp);
Git::temp_release($fh, 1);
my $atd = $self->apply_textdelta($fbat, $exp_a, $pool);
if (-s $fh_a) {
my $txstream = SVN::TxDelta::new ($fh_a, $fh_b, $pool);
SVN::TxDelta::send_txstream($txstream, @$atd, $pool);
} else {
my $got = SVN::TxDelta::send_stream($fh_b, @$atd, $pool);
die "Checksum mismatch\nexpected: $exp_b\ngot: $got\n"
if ($got ne $exp_b);
}
Git::temp_release($fh_b, 1);
Git::temp_release($fh_a, 1);
$pool->clear;
}

Expand Down

0 comments on commit 8598db9

Please sign in to comment.