diff options
author | Yaacov Akiba Slama <ya@slamail.org> | 2005-11-02 23:51:57 +0200 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-11-08 01:24:47 -0800 |
commit | fcfa32b9e10b3c0373a263a732146850bdf67242 (patch) | |
tree | ff2020faa4494ccd3744378604e5148bfd915d49 /git-svnimport.perl | |
parent | git-am: do not lose already edited final-commit when resuming. (diff) | |
download | tgif-fcfa32b9e10b3c0373a263a732146850bdf67242.tar.xz |
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>
Diffstat (limited to 'git-svnimport.perl')
-rwxr-xr-x | git-svnimport.perl | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/git-svnimport.perl b/git-svnimport.perl index 45b6a1986d..5bf9ef21e3 100755 --- a/git-svnimport.perl +++ b/git-svnimport.perl @@ -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"; |