Many Pies

Many Pies

Monday, July 16, 2007

Darcs

Darcs is a distributed version control system, a bit like Subversion, RCS, CVS, Visual Source Safe etc. but also different in some ways.

It's taken me quite a while to get my head round it, not because of the lack of introductory material, but because you need to think in a different way to non-distributed source code control.

Because you all tend to have your own repositories my first thought was that changes would clash a lot when you try and combine them. However from my reading
a) they may, but there are ways of resolving them
b) it probably wouldn't happen that much, unless you've got two people working extensively on one file
c) with central repositories you don't worry about that, but you do worry about branching and labeling and other different issues.

One thing that doesn't seem to be addressed is how you deploy your files in something like a web application which doesn't have compilation and the source files are the ones that are used by the "real thing". One way is to use the "darcs dist" command which packages everything up. It's also not clear how you keep two different environments going, e.g. live and QA and dev, where you may have different settings in some files.

The way I'm using on this project (still in stealth mode I'm afraid) is to have a repository on the live site and push patches (read the darcs documentation to see the specific meaning of this word) onto that. That seems to handle both of those problems.

tags: ,

2 comments:

Unknown said...

Paul,
You should also have a look at http://www.selenic.com/mercurial/wiki/
And I agree it's hard to get your head around it if you come from a central server backgroung.

jg

Paul Morriss said...

Yes, it looks very similar. I'll stick with what the person before me used though.