DORMANTno replies

[PATCH 1/7] Using svn pools seems to solve the memory leak problem

From: Yaacov Akiba Slama <hidden>
Date: 2016-06-15 22:42:10
Subsystem: the rest · Maintainer: Linus Torvalds

Signed-off-by: Yaacov Akiba Slama <redacted>

---

 git-svnimport.perl |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

applies-to: b12655de9a371d7d16f7e8318da8c5b0099c39bd
4356b879b425644c436eacb6d43b523bab960704
diff --git a/git-svnimport.perl b/git-svnimport.perl
index 45b6a19..5bf9ef2 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";
---
0.99.9.GIT
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help