Forum: Ruby on Rails SCM for a Rails project - Darcs or Subversion?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Alder G. (Guest)
on 2006-04-20 13:09
(Received via mailing list)
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
Peter S. (Guest)
on 2006-04-20 13:50
(Received via mailing list)
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

HTH,
Peter
Peter S. (Guest)
on 2006-04-20 13:53
(Received via mailing list)
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
btw. a nice comparison:

http://migo.sixbit.org/papers/Revision_Control_Sys...


HTH,
Peter
David M. (Guest)
on 2006-04-20 13:56
(Received via mailing list)
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.
Chris McGrath (Guest)
on 2006-04-20 14:33
(Received via mailing list)
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...
[2] http://blog.caboo.se/articles/2006/02/03/darcs-and...
not-working
[3] http://blog.caboo.se/articles/2006/02/21/darcs-and...
not-co-operating-part-2
Alder G. (Guest)
on 2006-04-20 18:15
(Received via mailing list)
On 4/20/06, Chris McGrath <removed_email_address@domain.invalid> wrote:
> (...)
> [1] Is an interesting read.
> (...)
> [1] http://blog.caboo.se/articles/2006/01/27/darcs-for...

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/subver...
Chris McGrath (Guest)
on 2006-04-20 20:13
(Received via mailing list)
On 20 Apr 2006, at 16:15, Alder G. wrote:

> On 4/20/06, Chris McGrath <removed_email_address@domain.invalid> wrote:
>> (...)
>> [1] Is an interesting read.
>> (...)
>> [1] http://blog.caboo.se/articles/2006/01/27/darcs-for...
>
> 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
Alder G. (Guest)
on 2006-04-20 20:56
(Received via mailing list)
On 4/20/06, Chris McGrath <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
Chris McGrath (Guest)
on 2006-04-21 12:18
(Received via mailing list)
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/
deploy_your_apps_on_edge_rails
[2] http://outside-thoughts.octopod.info/articles/2006...
your-apps-on-the-edge-without-using-svn-externals
[3] http://outside-thoughts.octopod.info/articles/2006/03/18/
switching-to-runit-from-spinner-spawner-reaper
This topic is locked and can not be replied to.