{"thread":{"id":"28770","subject":"Out of memory error with git rebase","startedAt":"2011-10-26T09:21:24Z","lastAt":"2011-10-31T20:21:41Z","messageCount":4,"participants":["Hannu Koivisto","Johannes Sixt","Junio C Hamano"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"178311","messageId":"83vcrc9kh7.fsf@kalahari.s2.org","threadId":"28770","inReplyTo":null,"subject":"Out of memory error with git rebase","fromName":"Hannu Koivisto","fromEmail":"azure@iki.fi","sentAt":"2011-10-26T09:21:24Z","receivedAt":"2011-10-26T09:21:24Z","isPatch":false,"sender":{"key":"azure@iki.fi","avatar":null},"body":"Hi,\n\nIf 'git rebase origin/master' dies with an out of memory error\n(probably due to a few of large binary files in the repository, the\nlargest being ~300MB and ~1GB in total in one directory), which\nsettings should be tweaked and how to get rid of the problem?  I\ntried...\n\n[pack]\n        threads = 1\n        windowMemory = 64M\n        packSizeLimit = 512M\n\n...based on some suggestions in the net but that was of no help.\n\nI'm using git 1.7.5.1 in Cygwin and I also tried the latest master\nbranch version (which behaved identically).\n\n-- \nHannu\n"},{"id":"178314","messageId":"4EA7E710.1020006@kdbg.org","threadId":"28770","inReplyTo":"83vcrc9kh7.fsf@kalahari.s2.org","subject":"Re: Out of memory error with git rebase","fromName":"Johannes Sixt","fromEmail":"j6t@kdbg.org","sentAt":"2011-10-26T10:55:12Z","receivedAt":"2011-10-26T10:55:12Z","isPatch":false,"sender":{"key":"j6t@kdbg.org","avatar":"https://avatars.githubusercontent.com/u/14810926?v=4"},"body":"Am 26.10.2011 11:21, schrieb Hannu Koivisto:\n> If 'git rebase origin/master' dies with an out of memory error\n> (probably due to a few of large binary files in the repository, the\n> largest being ~300MB and ~1GB in total in one directory), which\n> settings should be tweaked and how to get rid of the problem?  I\n> tried...\n\nTry 'git rebase -m origin/master'. Without -m, rebase uses\nformat-patch+am, i.e., assuming there are changes to the binary files\nthat are to be rebased, a binary patch file would have to be generated\nand applied later. This is very likely where git bails out.\n\n-- Hannes\n"},{"id":"178558","messageId":"83r51ta1rq.fsf@kalahari.s2.org","threadId":"28770","inReplyTo":"4EA7E710.1020006@kdbg.org","subject":"Re: Out of memory error with git rebase","fromName":"Hannu Koivisto","fromEmail":"azure@iki.fi","sentAt":"2011-10-31T10:33:45Z","receivedAt":"2011-10-31T10:33:45Z","isPatch":false,"sender":{"key":"azure@iki.fi","avatar":null},"body":"Johannes Sixt <j6t@kdbg.org> writes:\n\n> Am 26.10.2011 11:21, schrieb Hannu Koivisto:\n>> If 'git rebase origin/master' dies with an out of memory error\n>> (probably due to a few of large binary files in the repository, the\n>\n> Try 'git rebase -m origin/master'. Without -m, rebase uses\n> format-patch+am, i.e., assuming there are changes to the binary files\n> that are to be rebased, a binary patch file would have to be generated\n> and applied later. This is very likely where git bails out.\n\nThanks, -m seems to help, even though the large binary files are\nnot touched by the rebased commits (instead, they are touched by\nthe commits on top of which I'm rebasing).\n\n>From the documentation I can't figure out any reason why one\nwouldn't always want to use -m.  Why is it not the default?  I\nthink it's pretty much impossible for ordinary users to figure out\nthat they need -m in a situation like this.\n\n-- \nHannu\n"},{"id":"178577","messageId":"7vlis0q5d6.fsf@alter.siamese.dyndns.org","threadId":"28770","inReplyTo":"83r51ta1rq.fsf@kalahari.s2.org","subject":"Re: Out of memory error with git rebase","fromName":"Junio C Hamano","fromEmail":"gitster@pobox.com","sentAt":"2011-10-31T20:21:41Z","receivedAt":"2011-10-31T20:21:41Z","isPatch":false,"sender":{"key":"gitster@pobox.com","avatar":"https://avatars.githubusercontent.com/u/54884?v=4"},"body":"Hannu Koivisto <azure@iki.fi> writes:\n\n> From the documentation I can't figure out any reason why one\n> wouldn't always want to use -m.  Why is it not the default?  I\n> think it's pretty much impossible for ordinary users to figure out\n> that they need -m in a situation like this.\n\nBecause most people do not have too large binary blobs in the history, and\nat least when \"rebase\" was originally written, merge-based rebasing was\nway slower than patch-based one.\n"}]}