[darcs-users] darcs 2.3 beta 1

Simon Marlow marlowsd at gmail.com
Wed Jul 1 08:14:51 UTC 2009

On 30/06/2009 17:09, Petr Rockai wrote:
> Simon Marlow<marlowsd at gmail.com>  writes:
>> I tried this, and it worked!  Nice going.
> Thanks!
>> Did a quick comparison between my installed 2.2.0 and 2.3-beta on my laptop,
>> where I'm using hashed repositories.  On a GHC repository with lots of local
>> changes, whatsnew went from 0.26 seconds to 0.22 seconds. On a GHC testsuite
>> repository with zero changes, whatsnew went from 1.1s to 0.06 seconds (cool!).
> Yes, the textual diffing code is basically the same, so as soon as textual diff
> becomes the bottleneck, hashed-storage won't help.
>> On this machine with hashed repositories I often suffer from the problem
>> whereby darcs seems to randomly forget about timestamps, causing it to take
>> ages in whatsnew and other operations.  So I take it this problem is partially
>> fixed in 2.3?  Is there any way around it?
> Yes, for whatsnew, this is no longer an issue. The problem of course happens
> whenever darcs needs to diff working copy against pristine: a number of
> commands does this (I have already replaced all such code in darcs-hs, but it's
> not deemed safe enough for the 2.3 release).
> The origin of the problem (as far as I can tell) is, that as soon as you have
> more than a single branch of a darcs project, darcs will use hardlinking for
> pristine files. Now because the timestamp feature copies timestamps from
> working copy to the pristine cache, and because the two branches will generally
> have timestamps totally different from each other, these two branches will
> "fight" for the pristine timestamps. The only way I can think of to prevent
> this is not to use hardlinks at all. However, darcs 2.3 will fix the problem
> for at least whatsnew, and 2.4 should fix it for good. (Alas, we may choose to
> make 2.4 sooner than 6 months from 2.3, especially if the code turns out to be
> reliable.)

The User Manual already recommends not hard-linking the pristine - see 
the docs for "darcs optimize", and "Reducing disk space usage" under 
"Getting Started".  So, it seems rather strange that darcs does this 
itself, by default, with no way to disable it!

The user manual suggests that the darcs cache has to be explicitly 
enabled, but as far as I can tell it's on by default.  How is it disabled?

Can I strongly suggest that there should be a way to turn off 
hard-linking of pristine files in darcs 2.3, and furthermore that having 
it turned off should be the default.  Without this, hashed repositories 
are less than useful, and I'd really like to fully switch to using 
hashed repos.

I tried to find the manual for 2.3 - is it online anywhere?


More information about the darcs-users mailing list