[darcs-users] Re: Size of patches, import performance, HintsAndTips

Adam Sjøgren asjo at koldfront.dk
Thu Oct 20 22:18:26 UTC 2005


On Thu, 20 Oct 2005 23:34:12 +0200, Juliusz wrote:

> We will get around to optimising that case at some point, but it's a
> rather low priority.

That sounds great. Do you have a ticket tracking this in RT, or
somewhere else I can follow any progress/get hints on where to look
myself, if I ever get crazy^Wbrave enough to try that?

>> Given that the directory I imported weighs in at 75MB and I imported
>> it as one patch (one 'darcs record'), maybe I should not be surprised
>> that it took more than 5 minutes of cpu-time, taking up 250+MB RAM to
>> push it from one 2GHz Pentium 4-box to another, over a LAN.

> First of all, you should use |darcs get| or |put| instead of |pull| or
> |push|, whenever possible.

I thought 'get' and 'put' were used to create "new" repositories (i.e. 
where there was no repository previously)?

I was adding a subdir to a working-copy repository on my desktop box
and pushing it to a central repository on another box (the server with
backup, RAID and stuff), so I did this:

 1) Enter existing darcs working-copy repository,
 2) darcs 'add', 'record' a bunch of files,
 3) darcs 'push' [which updated the repository on the server]

Where should I have used 'get' or 'put' instead?

>> My question is this: What is the recommended way to import a 75MB
>> directory?

> If you can, split the repository into multiple repositories.  I have
> trouble believing that your 75MB are a single project (that's a couple
> million lines of code!).

I wouldn't want to question your beliefs, but a cvs checkout of
COIN-OR is around 75MB. You can try it yourself if you want to:
 <http://www.coin-or.org/download.html>

(sloccount reports it to contain 478,960 lines of code¹; there is
 documentation in there as well).

> If that is not practical, split the initial import into multiple
> records, as suggested on the wiki (2MB seems a little excessive,
> though, for an initial commit; it's a good guideline for later
> commits).

This was what the other part of my question was: How do I do this
easily? ("Easily" meaning automatic here :-))

> And finally, use binary commits whenever you're recording anything
> that's not NL-separated lines.

What is a binary commit? Where can I read about this?


  Thank you for your answer,

     Adam


¹ generated using David A. Wheeler's 'SLOCCount'.

-- 
 "Alla vill till himmelen                                     Adam Sjøgren
  Men få vill ju dö"                                     asjo at koldfront.dk





More information about the darcs-users mailing list