[darcs-users] Re: darcs - the CVS replacement for our company?

Mark Stosberg mark at summersault.com
Sat Feb 26 13:41:43 UTC 2005


I hope Markus finds this reply. Maybe David can pass it on. 

>> I'm working for a software developing company as programmer. At the
>> moment our projects are managed with CVS, but we are very unhappy with
>> its performance and limitations.

Perhaps you have already discovered my "real world" story of how my own
software development team switched:

  http://mark.stosberg.com/Tech/darcs/cvs_switch/

In summary: we've been using darcs for some months now, and I think
everyone on the team prefers it to CVS. With CVS, there was more
headache, because we would get a directive from the client: "I want
feature/bug-fix X launched ASAP".     

With CVS, it was such a hassle to launch one patch that happened several
revisions ago without launching all the revisions.

With darcs, we can respond "OK, so you'd like to launch everything
related to our tracking ticket #1976?"
    
    darcs pull -p 1976

That might pull over 5 patches related to the feature they want, leaving
several newer patches behind.

So far, we haven't had any of the big conflicts that cause darcs to slow
down so much. As a small controlled team, I think we are in a good
position to quickly  identify and fix that if it happens. My opinion
is that when that comes up, the little hassle involved will be worth it.
:)

Also be aware that fixing the performance of conflicts is a primary
priority for David now, and some code as already been written to "really
fix" that issue. So that's expected to be a permanent problem with
darcs.

>> From what I've seen so far, darcs is very easy to use and very
>> powerful. A co-worker and I are already fans of the idea to not just
>> have a single repository and be able to move patches between
>> developers without checking them into a central place first.

We adjusted to this idea, because it wasn't possible in CVS. With CVS, we
would sometimes commit broken code just to share it with each other.

Now with darcs, we sometimes pass patches around directly to each other
for peer review. It's been a nice feature. 

> One major question as far as darcs' appropriateness would be the size of
> your repository.  Darcs still has efficiency issues with very large
> repositories, either in terms of length of history or total size of source
> code.

Our biggest project is 40,000 lines of code, and we haven't had serious
performance problems with it so far.

>> 1) What is a checkpoint?

In my 'real world' case, we have happily not used checkpoints in the
first several months of using darcs. 

>> 5) Tag matching problem
>> 
>> Two people create create two different patches for a file, both name
>> it the same way, both check it the same day into a central repository.
>> How can I address one of both patches? Regex will match both, match
>> with date option will match both (same day). In CVS you have revision
>> to avoid that. In darcs you can't have them, because it's not central.
>> 
>> I could place a revision in front of the patch description, but when
>> I'm at home doing so, someone else at home may choose the same
>> revision in front and again we have a conflict if trying to merge both
>> changes in a central repository.

In practice, this doesn't turn out to be a problem because as David
mentioned darcs uses interactive patch selection, so you will also see
the author's name on the patch.

Darcs does have something like the unique revision. It has a unique hash
for each patch. Right now you can see this by using one of the XML
output options, and then you can use the hash for tag matching.

    Mark

-- 
http://mark.stosberg.com/ 





More information about the darcs-users mailing list