зеркало из https://github.com/microsoft/git.git
Use svn pools to solve the memory leak problem.
Signed-off-by: Yaacov Akiba Slama <ya@slamail.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Родитель
4bfb6b62ff
Коммит
fcfa32b9e1
|
@ -112,7 +112,9 @@ sub file {
|
|||
DIR => File::Spec->tmpdir(), UNLINK => 1);
|
||||
|
||||
print "... $rev $path ...\n" if $opt_v;
|
||||
eval { $self->{'svn'}->get_file($path,$rev,$fh); };
|
||||
my $pool = SVN::Pool->new();
|
||||
eval { $self->{'svn'}->get_file($path,$rev,$fh,$pool); };
|
||||
$pool->clear;
|
||||
if($@) {
|
||||
return undef if $@ =~ /Attempted to get checksum/;
|
||||
die $@;
|
||||
|
@ -674,7 +676,9 @@ sub commit_all {
|
|||
}
|
||||
|
||||
while(++$current_rev <= $svn->{'maxrev'}) {
|
||||
$svn->{'svn'}->get_log("/",$current_rev,$current_rev,$current_rev,1,1,\&_commit_all,"");
|
||||
my $pool=SVN::Pool->new;
|
||||
$svn->{'svn'}->get_log("/",$current_rev,$current_rev,1,1,1,\&_commit_all,$pool);
|
||||
$pool->clear;
|
||||
commit_all();
|
||||
if($opt_l and not --$opt_l) {
|
||||
print STDERR "Stopping, because there is a memory leak (in the SVN library).\n";
|
||||
|
|
Загрузка…
Ссылка в новой задаче