[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn merge fails "Out of memory - terminating application." or Tortoise runtime error

From: Paul Burba <ptburba_at_gmail.com>
Date: Wed, 8 Apr 2009 12:52:38 -0400

On Wed, Mar 4, 2009 at 12:54 PM, Nick Lockwood <nmlskl_at_i4free.co.nz> wrote:
> Do not know if this thread is still alive but hopefull will help somone else
> as spent ages trying to sort out same error.
>
> In short I managed to trace the problem (performing merge sub directory by
> sub directory) to a directory of approx 1200 files that had a svn:mergeinfo
> property which was blank.

Nick,

Counting the 1200 files in that one directory, what were the *total*
number of subtrees with mergeinfo in your merge target (i.e. how many
paths under the merge target had the svn:mergeinfo property set on
them, regardless of what the property's value is)?

> seen by running
> svn propget svn:mergeinfo --recursive --xml > mergeinfo.xml
>
> once removed (hope someone is not going to tell me off for sugesting the
> wrong thing here) with
> svn propdel --recursive svn:mergeinfo ./*

Most empty mergeinfo (what you referred to as "blank" above) is caused
by working copy to working copy copies/moves where the source item has
no explicit mergeinfo. Since 1.5.5 these WC-to-WC copies no longer
create empty mergeinfo on the destination. There are of course other
ways to produce empty mergeinfo, but this has been the most common
AFAICT. Peter Kahn mentioned the Polarion importer; I don't know much
about that, but it is quite possible that some import tools create a
lot of subtree mergeinfo too.

> I was able to start performing branch to trunk working copy merges
> successfully after that.
>
> My theory (I am not an svn expert so take it with a grain of salt). I had
> picked up all these mergeinfo properties (probably from an earlier svn move
> (rename) restructuring exercise),

Ok, looks like the usual culprit of empty mergeinfo. So what you did
in deleting this empty mergeifo is probably quite alright. If the
subtree mergeinfo had been created because you were doing subtree
merges then you might have problems (by subtree merge I mean merges
where the WC target is not the root of your branch/copy).

> but when a merge was being performed there
> were so many that examining all these caused memory usage to go through the
> roof (2+ GB) which eventually caused abnormal termination. Either that or
> there might be a bug (memory leak?) handling empty merge info properties.

Experimenting with a merge target with 1500 subtrees with empty
mergeinfo I see memory usage peaking around 1.2 GB. But this doesn't
happen until after the merge is complete, most of the time it is
around 200-400MB. Debugging now to see if the spike occurs
post-merge, when the code sets mergeinfo to record the merge. More
soon...

Paul

P.S. Moving this to the dev list too.

------------------------------------------------------
http://subversion.tigris.org/ds/viewMessage.do?dsForumId=462&dsMessageId=1599139
Received on 2009-04-08 18:53:37 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.