# SCM for a Rails project - Darcs or Subversion?

**URL:** <https://www.ruby-forum.com/t/scm-for-a-rails-project-darcs-or-subversion/58295>\
**Category:** Rails\
**Created:** [April 20, 2006, 11:09am UTC](https://www.ruby-forum.com/t/scm-for-a-rails-project-darcs-or-subversion/58295 "2006-04-20T11:09:59Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![alder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a4c791/32.png) [@alder](https://www.ruby-forum.com/u/alder)\
**Post date:** [April 20, 2006, 11:09am UTC](https://www.ruby-forum.com/t/scm-for-a-rails-project-darcs-or-subversion/58295/1 "2006-04-20T11:09:59Z")

</div>

Hi everyone.

I’m choosing an SCM for my current Rails project.

Up until now, for my other (non-Rails) codings, I used Darcs and liked  
it very much. I’d prefer to use Darcs for my Rails development as  
well. Looking into the matter, I’m somewhat deterred by the appearant  
dominance of Subversion as the SCM tool of choice for Rails hackers.

Is there a technical reason for this dominance? Should I avoid Darcs  
and instead use SVN for my Rails development? Should I expect poor  
Rais’ tools support of Darcs compared to SVN? I’ve already noticed  
RadRails tightly integrates SVN, and the large amount of  
online/offline (the Agile book) discussing SVN with Rails, while Darcs

- Rails only yields a single - good but short and very basic - blog  
post.

That said, I found SVN itself to be an overkill and less suitable for  
my zen of development, and would like to stick to Darcs also for Rails  
if the cost isn’t too high.

Regards,  
Alder

---

<div class="post-metadata">

**Author:** ![alder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a4c791/32.png) [@alder](https://www.ruby-forum.com/u/alder)\
**Post date:** [April 20, 2006, 11:50am UTC](https://www.ruby-forum.com/t/scm-for-a-rails-project-darcs-or-subversion/58295/2 "2006-04-20T11:50:20Z")

</div>

Alder G. wrote:

> and instead use SVN for my Rails development? Should I expect poor  
> Rais’ tools support of Darcs compared to SVN? I’ve already noticed  
> RadRails tightly integrates SVN, and the large amount of  
> online/offline (the Agile book) discussing SVN with Rails, while Darcs
> 
> - Rails only yields a single - good but short and very basic - blog  
> post.
> 
> That said, I found SVN itself to be an overkill and less suitable for  
> my zen of development, and would like to stick to Darcs also for Rails  
> if the cost isn’t too high.

An interesting discussion on this can be found here:

[http://drupal.org/node/16631](http://drupal.org/node/16631)

HTH,  
Peter

---

<div class="post-metadata">

**Author:** ![alder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a4c791/32.png) [@alder](https://www.ruby-forum.com/u/alder)\
**Post date:** [April 20, 2006, 11:53am UTC](https://www.ruby-forum.com/t/scm-for-a-rails-project-darcs-or-subversion/58295/3 "2006-04-20T11:53:26Z")

</div>

Peter S. wrote:

> > Is there a technical reason for this dominance? Should I avoid Darcs
> 
> An interesting discussion on this can be found here:
> 
> [http://drupal.org/node/16631](http://drupal.org/node/16631)  
> btw. a nice comparison:

[http://migo.sixbit.org/papers/Revision\_Control\_Systems/all-in-one.html](http://migo.sixbit.org/papers/Revision_Control_Systems/all-in-one.html)

HTH,  
Peter

---

<div class="post-metadata">

**Author:** ![alder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a4c791/32.png) [@alder](https://www.ruby-forum.com/u/alder)\
**Post date:** [April 20, 2006, 12:33pm UTC](https://www.ruby-forum.com/t/scm-for-a-rails-project-darcs-or-subversion/58295/4 "2006-04-20T12:33:31Z")

</div>

On 20 Apr 2006, at 11:53, David M. wrote:

> There’s nothing stopping you using Darcs if that’s what you really  
> want to use.
> 
> However, as you’ve noticed the “standard” is Subversion. RadRails  
> supports it; Capistrano requires it (as far as I’m aware), and is  
> magic for deployment.

[1] Is an interesting read.

I tend to use darcs for personal projects and svn where I have to.  
I’ve used Capistrano just fine [2] & [3] with either and TextMate has  
bundles for Subversion and Darcs (though I tend to use the command  
line anyway).

I don’t see any reason not to use whichever one you want as  
appropriate, heck I’ve even heard of people using darcs locally on a  
project that used svn by setting up the appropriate boringfile /  
svn:ignore properties and being careful about how they did their  
commits.

Chris

[1] [http://blog.caboo.se/articles/2006/01/27/darcs-for-rails-users](http://blog.caboo.se/articles/2006/01/27/darcs-for-rails-users)  
[2] [Parked at Loopia](http://blog.caboo.se/articles/2006/02/03/darcs-and-switchtower-)  
not-working  
[3] [Parked at Loopia](http://blog.caboo.se/articles/2006/02/21/darcs-and-switchtower-)  
not-co-operating-part-2

---

<div class="post-metadata">

**Author:** ![alder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a4c791/32.png) [@alder](https://www.ruby-forum.com/u/alder)\
**Post date:** [April 20, 2006, 11:56am UTC](https://www.ruby-forum.com/t/scm-for-a-rails-project-darcs-or-subversion/58295/5 "2006-04-20T11:56:27Z")

</div>

There’s nothing stopping you using Darcs if that’s what you really want  
to use.

However, as you’ve noticed the “standard” is Subversion. RadRails  
supports it; Capistrano requires it (as far as I’m aware), and is  
magic for deployment.

Until my Subversion server was available, I used gmail as a  
repository. It worked fine; I had lots of tar.rzip files sitting  
around, but I could “roll back”, “tag” and “branch” as I saw fit. I  
couldn’t use Capistrano (then Switchtower) to deploy, but uptime  
wasn’t a big concern for me so it just meant a bit of manual work to  
get things done. I use Eclipse, but not RadRails, so didn’t miss  
Subversion from that perspective.

The real questions are “How much do _you_ like Darcs? How much manual  
work are _you_ prepared to put up with in order to use it? How tough  
would it be for _you_ to switch to Subversion?”, and obviously none of  
us can answer those for you.

Regards

Dave M.

---

<div class="post-metadata">

**Author:** ![alder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a4c791/32.png) [@alder](https://www.ruby-forum.com/u/alder)\
**Post date:** [April 20, 2006, 4:15pm UTC](https://www.ruby-forum.com/t/scm-for-a-rails-project-darcs-or-subversion/58295/6 "2006-04-20T16:15:55Z")

</div>

On 4/20/06, Chris McGrath [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> (…)  
> [1] Is an interesting read.  
> (…)  
> [1] [http://blog.caboo.se/articles/2006/01/27/darcs-for-rails-users](http://blog.caboo.se/articles/2006/01/27/darcs-for-rails-users)

Yes, it is. It’s also the only text I manged to find about using Darcs  
with Rails. There are a few others, discussing deployment issues with  
Darcs compared to smoother operation with SVN. So not very  
encouraging.

The Rails wiki has several detailed treatments of SVN Rails  
development and deployment. Many other texts exist, some going into  
quite a bit of detail, like for example [1].

With so little information available online (and afai could determine:  
also offline), I had to try to get a sense of how many developers  
actually use Darcs to manage their Rails code, and a rough estimate of  
the overhead it incurs compared to the better-supported SVN, assuming  
I don’t use RadRails and probably won’t need SwitchTower or  
Capistrano.

-Alder

[1]  
[http://blog.teksol.info/articles/2006/03/09/subversion-primer-for-rails-projects](http://blog.teksol.info/articles/2006/03/09/subversion-primer-for-rails-projects)

---

<div class="post-metadata">

**Author:** ![alder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a4c791/32.png) [@alder](https://www.ruby-forum.com/u/alder)\
**Post date:** [April 20, 2006, 6:13pm UTC](https://www.ruby-forum.com/t/scm-for-a-rails-project-darcs-or-subversion/58295/7 "2006-04-20T18:13:03Z")

</div>

On 20 Apr 2006, at 16:15, Alder G. wrote:

> On 4/20/06, Chris McGrath [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> > (…)  
> > [1] Is an interesting read.  
> > (…)  
> > [1] [Parked at Loopia](http://blog.caboo.se/articles/2006/01/27/darcs-for-rails-users)
> 
> Yes, it is. It’s also the only text I manged to find about using Darcs  
> with Rails. There are a few others, discussing deployment issues with  
> Darcs compared to smoother operation with SVN. So not very  
> encouraging.

Different from the problems on the other articles I mentioned? If so  
can you give me URLs as quick google didn’t turn up much for me.

> The Rails wiki has several detailed treatments of SVN Rails  
> development and deployment. Many other texts exist, some going into  
> quite a bit of detail, like for example [1].

That’s a nice article, and could be translated to darcs, which I’d do  
if I had more time.

> With so little information available online (and afai could determine:  
> also offline), I had to try to get a sense of how many developers  
> actually use Darcs to manage their Rails code, and a rough estimate of  
> the overhead it incurs compared to the better-supported SVN, assuming  
> I don’t use RadRails and probably won’t need SwitchTower or  
> Capistrano.

I know a few who do, but most run svn, especially if they have public  
code. Guess it’s whatever you feel most comfortable with. I’m not  
sure what you mean by overhead mind you.

If you’re deploying to unix I’d _really_ _really_ recommend checking  
out Capistrano, I can’t imagine using anything else now!

Cheers,

Chris

---

<div class="post-metadata">

**Author:** ![alder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a4c791/32.png) [@alder](https://www.ruby-forum.com/u/alder)\
**Post date:** [April 20, 2006, 6:56pm UTC](https://www.ruby-forum.com/t/scm-for-a-rails-project-darcs-or-subversion/58295/8 "2006-04-20T18:56:12Z")

</div>

On 4/20/06, Chris McGrath [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > with Rails. There are a few others, discussing deployment issues with  
> > Darcs compared to smoother operation with SVN. So not very  
> > encouraging.
> 
> Different from the problems on the other articles I mentioned? If so  
> can you give me URLs as quick google didn’t turn up much for me.

Actually I was refering to the same articles you quoted: one short  
introduction (well, more like a teaser :), and two troubleshooting  
posts.

> > The Rails wiki has several detailed treatments of SVN Rails  
> > development and deployment. Many other texts exist, some going into  
> > quite a bit of detail, like for example [1].
> 
> That’s a nice article, and could be translated to darcs, which I’d do  
> if I had more time.

Yeah, knowing all the gotchas in advance would be nice. Maybe I’ll  
find the time to write it after I experience all of them myself 🙂

> > With so little information available online (and afai could determine:  
> > also offline), I had to try to get a sense of how many developers  
> > actually use Darcs to manage their Rails code, and a rough estimate of  
> > the overhead it incurs compared to the better-supported SVN, assuming  
> > I don’t use RadRails and probably won’t need SwitchTower or  
> > Capistrano.
> 
> I know a few who do, but most run svn, especially if they have public  
> code. Guess it’s whatever you feel most comfortable with. I’m not  
> sure what you mean by overhead mind you.

Not sure either 🙂 I understand Rails on principle (MVC, basic  
concepts and MO), but actually developing a complex Rails application  
is still a mystery for me. I figured if everyone is flocking to SVN  
(when we all know how much simpler and subtly powerful Darcs is 😉  
there must be a good reason…

> If you’re deploying to unix I’d _really_ _really_ recommend checking  
> out Capistrano, I can’t imagine using anything else now!

Sounds like I really need to check it out 🙂 (deploying to a Debian  
Stable server).

> Cheers,
> 
> Chris

Thanks a lot, Chris.

-Alder

---

<div class="post-metadata">

**Author:** ![alder](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/a4c791/32.png) [@alder](https://www.ruby-forum.com/u/alder)\
**Post date:** [April 21, 2006, 10:18am UTC](https://www.ruby-forum.com/t/scm-for-a-rails-project-darcs-or-subversion/58295/9 "2006-04-21T10:18:43Z")

</div>

On 20 Apr 2006, at 18:53, Alder G. wrote:

> > > The Rails wiki has several detailed treatments of SVN Rails  
> > > development and deployment. Many other texts exist, some going into  
> > > quite a bit of detail, like for example [1].
> > 
> > That’s a nice article, and could be translated to darcs, which I’d do  
> > if I had more time.
> 
> Yeah, knowing all the gotchas in advance would be nice. Maybe I’ll  
> find the time to write it after I experience all of them myself 🙂

I didn’t have any problems other than the ones mentioned, and those  
articles were what got me to try darcs so I avoided them :).

The main issue i’ve found using darcs is how to handle the case where  
others would use svn:externals. I shy away from them anyway, and for  
vendor/rails use tasks similar to this one on railsweenie [1], which  
I’ve blogged about here [2]. I don’t actually like the way my task  
works at the moment but it should give you the idea.

What I’ve started doing with other plugins (which use svn in general  
with a few .zips) is checking them out to ~/dev/rails\_plugins/  
\<plugin\_name\> and then using svn export ~/dev/rails\_plugins/  
\<plugin\_name\> ~/dev/my\_app/vendor/\<plugin\_name\>. I then record this  
in darcs with something like darcs record -alm "[PLUGIN\_NAME] - r123

- added". I do this manually at the moment but it’s crying out to be  
raked up. I’ve got every plugin I think I’ll need locally, which  
means I can create new or test apps without needing to be connected  
to the net. Another rake task crying out to be written is one that  
svn up’s all those dirs to keep me up to date.

It would be great if you found the time to do the writeup, more  
people should behold the power of the darcside on their source \</  
vader\_misquote\>

> Not sure either 🙂 I understand Rails on principle (MVC, basic  
> concepts and MO), but actually developing a complex Rails application  
> is still a mystery for me. I figured if everyone is flocking to SVN  
> (when we all know how much simpler and subtly powerful Darcs is 😉  
> there must be a good reason…

I think simply because svn has a lower barrier to entry and wider  
usage, and it’s how you get the rails source. I much prefer how darcs  
works, especially given that one of my tasks pretty soon will be to  
help merge a branch and trunk in an svn repo that diverged over 1000  
revisions ago ☹

I’m still finding my feet with darcs somewhat, and trying to figure  
out the best way of going about recording patches. At the moment I’m  
going for the record as often as possible approach, as well as this I  
should probably be putting useful tags in my commit messages to  
making pulling and pushing specific bits of functionality easier.

On my “I want a pony” list is a rails app that you could tell about  
your darcs repos that would query them and allow you to drag and drop  
patches between one and the other. I haven’t really needed anything  
like that yet but it’d just be cool 🙂

> > If you’re deploying to unix I’d _really_ _really_ recommend checking  
> > out Capistrano, I can’t imagine using anything else now!
> 
> Sounds like I really need to check it out 🙂 (deploying to a Debian  
> Stable server).

I deploy to debian stable on my VPS using runit rather than spinner /  
spawner / reaper [3] and have used Capistrano with both darcs and  
svn. For darcs, I push to a dir readable by my www user (which I  
should put in a before\_deploy task thinking about it), have  
set :repository, ‘/path/to/readable/dir’ in config/deploy.rb and  
Capistrano gets it from there when it’s doing it’s stuff on the  
remote machine. Capistrano shells out to darcs get so you can put any  
darcs valid repo in there.

Cheers,

Chris

[1] [http://rails.techno-weenie.net/tip/2006/2/7/](http://rails.techno-weenie.net/tip/2006/2/7/)  
deploy\_your\_apps\_on\_edge\_rails  
[2] [http://outside-thoughts.octopod.info/articles/2006/03/14/keeping-](http://outside-thoughts.octopod.info/articles/2006/03/14/keeping-)  
your-apps-on-the-edge-without-using-svn-externals  
[3] [http://outside-thoughts.octopod.info/articles/2006/03/18/](http://outside-thoughts.octopod.info/articles/2006/03/18/)  
switching-to-runit-from-spinner-spawner-reaper
