[darcs-users] Unable to record for the first time: heap exhaustion

Tommy Pettersson ptp at lysator.liu.se
Sun Apr 27 11:46:42 UTC 2008


On Sat, Apr 19, 2008 at 12:40:19PM +0000, Fernando Rodriguez wrote:
> 
> Hi,
> 
> I'm trying to get started with darcs without much luck. I already initialized 
> a repository with half a gigabyte of files and managed to add everything.  
> 
> However, when I try to record the files for the first time, darcs starts 
> thrashing the hd and after a few minutes, crashes with "heap exhausted" error. 
> This happens even if I try to record a single file.
> 
> What am I doing wrong? O:-)

There are two reasons why you don't want to record everything in
a single initialization patch. The first, as you've already
noticed, is it requires enormous resources by the current darcs
implementation. The second problem, as you would possibly notice
long into the future when it's much too late, is that every new
patch you record will depend on this whole initialization patch,
so you can not pull out small parts of the source tree, should
you ever need to. A related issue is that when you try to
inspect the repo's history in the future, darcs will sometimes
have to read in this gigantic initialization patch again,
causing similar resource problems.

Try this instead:

  find | while read f; do darcs add $f && darcs rec -am 'init '$f; done  # coffee break

Note: it's important that the patch names differ, because the
patch hash is constructed from author+time+name, and the author
and time will be the same for all patches recorded during the
same second.


-- 
Tommy Pettersson <ptp at lysator.liu.se>


More information about the darcs-users mailing list