Subject: Re: git svn rebase “out of memory” error after merging two tracking branches

From: Thomas Rast <[email-masked]>
Date: Tue, 6 Dec 2011 18:56:52 +0100

Onsager wrote:
> @list
> 
> ... more detailed explanation on stackoverflow:
> 
> http://stackoverflow.com/questions/8398405/git-svn-rebase-out-of-memory-error-after-merging-two-tracking-branches
> 
> Is there something, I can do about this issue as a common user?

In this age of 5-second attention spans, I'm not sure you can expect
us to follow a link to an external site when a simple cut&paste job
would have sufficed, like so:

  I'm tracking two customer SVN branches with msysgit 1.7.7.1 (Win 7 64bit):

    SVN                Git

    trunk          --> master
    release_x_y_z  --> git-local-release_x_y_z 

  After a successful local merge of 'git-local-release_x_y_z' into
  'master' I'm running out of memory, when trying to synchronize the
  result with svn:

    mb@MMPEPA23 /c/git/MySoft (master)
    $ git svn rebase
    First, rewinding head to replay your work on top of it...
    Applying:
    fatal: Out of memory, realloc failed
    Repository lacks necessary blobs to fall back on 3-way merge.
    Cannot fall back to three-way merge.
    Patch failed at 0001

    When you have resolved this problem run "git rebase --continue".
    If you would prefer to skip this patch, instead run "git rebase --skip".
    To check out the original branch and stop rebasing run "git rebase --abort".

    rebase refs/remotes/git-svn: command returned error: 1 

  The .git/rebase-apply directory contains a few files ('patch', '0001')
  with more than 1GB size. What can I do in order to apply this patch?

First you should find out whether something went wrong with the patch
generation, or if that 1GB size is plausible.  Did your merge bring in
blobs that were that big?

Second, you could try with the -m option.  This will use a 3-way merge
to rebase, which avoids generating a full patch.

-- 
Thomas Rast
trast@{inf,student}.ethz.ch