Why SVN?


#1

Should I be using SVN rather than Darcs or Git?

Subversion has apparently become the version control system of choice
for Ruby developers --especially now that Ruby itself uses it. I
suspect that might have a lot to do with Rails and Rubyforge. Ruby
only switched over to SVN well after Rails had been using it. And
Rubyforge currently only supports SVN and CVS, which I find a bit
surprising since, from what I understand, supporting Darcs is just a
matter of having Darcs installed. And I can’t imagine Git is much
different.

So I’m wondering, what’s so special about SVN as opposed to the other
choices? Is it because SVN is more like CVS than the other choices?
The fact that SVN isn’t distributed I would think would work against
it (though I hear SVK is supposed to deal with that). Darcs is written
in Haskell, and from the word on the street a lot of Ruby folk seem to
like Haskell. Also, Git was written by Linus Torvalds, which is about
as good as credentials can get.

Thanks,
T.


#2

Why not SVN?

On 3/12/07, Trans removed_email_address@domain.invalid wrote:

different.
T.


“Hey brother christian with your high and mighty errand, Your actions
speak
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)


#3

On 3/12/07, Glen H. removed_email_address@domain.invalid wrote:

Why not SVN?

This is going a bit OT for ruby-talk, but I’ll bite.

I work from several different machines, in several different locations,
including from a laptop that is often disconnected from the internet.
It’s
extremely useful for me to be able to record changes, branch, work, in
my
normal manner, without worrying about the fact that when I DO get a
connection all my changes will show up as one big lump. So I use Darcs
over
SSH. It gives me a full, functional repository with “commits” as I need
them, without being connected. Then when I get back to civilization I
can
push all my changes back to my main repo and be good to go, SVN can’t
give
me that kind of work flow, so I’ve moved away from it. (I’m aware of
SVK,
but never could get it working well on linux/mac/and windows)

At work, where I work from a single workstation, always connected to the
network, I use SVN, because it fits the environment better. Use the
tool
that fits the job, and move on.


#4

On 3/12/07, Trans removed_email_address@domain.invalid wrote:

Should I be using SVN rather than Darcs or Git?

Subversion has apparently become the version control system of choice
for Ruby developers --especially now that Ruby itself uses it. I
suspect that might have a lot to do with Rails and Rubyforge. Ruby
only switched over to SVN well after Rails had been using it.

SVN is very much like CVS. It does have better handling of the
hierarchical structure of a project in that it versions the directory
hierarchy. This makes it nicer for things like Rails which make a
fair use of directory hierarchies.

And
Rubyforge currently only supports SVN and CVS, which I find a bit
surprising since, from what I understand, supporting Darcs is just a
matter of having Darcs installed. And I can’t imagine Git is much
different.

I think it’s a matter of the repository itself, they’d need to have
more parallel copies of the code in different repository formats.

So I’m wondering, what’s so special about SVN as opposed to the other
choices? Is it because SVN is more like CVS than the other choices?
The fact that SVN isn’t distributed I would think would work against
it (though I hear SVK is supposed to deal with that). Darcs is written
in Haskell, and from the word on the street a lot of Ruby folk seem to
like Haskell. Also, Git was written by Linus Torvalds, which is about
as good as credentials can get.

A good bit of it is the relationship between CVS and SVN, if you are
used to CVS then SVN is a fairly easy transition. Those two are
probably the most popular version systems around, so it’s also a
matter of market share.

Git was written as a recovery from having the BitKeeper license yanked
out from under the linux project. FWIW.


Rick DeNatale

My blog on Ruby
http://talklikeaduck.denhaven2.com/


#5

Sorry I spaced and hit send before I actually typed more than my
“subject”.
I was going to suggest reasons similar to those put forth by Rick.

On 3/12/07, Tanner B. removed_email_address@domain.invalid wrote:

internet. It’s
At work, where I work from a single workstation, always connected to the

only switched over to SVN well after Rails had been using it. And
like Haskell. Also, Git was written by Linus Torvalds, which is about
"Hey brother christian with your high and mighty errand, Your actions
removed_email_address@domain.invalid
http://www.tannerburson.com


“Hey brother christian with your high and mighty errand, Your actions
speak
so loud, I can’t hear a word you’re saying.”

-Greg Graffin (Bad Religion)


#6

The system that is used is a good one.

I have use Visual Source Safe, CVS and for last tree and more years
exclusively subversion.
There is no bad system but I wouldn’t go back to previous ones.

I use subversion on my work and form all my home pet projects.

It is very reachable thought out various protocols, easy command line
syntax, has GUI Tools, configurable from administrator’s point of
view, mature system, has lot of knowledge.

This can be taken as personal opinion colored by some personal
affinity. To take more objective approach investigates what big source
repositories sites using like Google or other Forge sites.

If you have time perhaps you can try all of them and find the one that
suit your needs.


#7

Tanner B. wrote:

At work, where I work from a single workstation, always connected to the
network, I use SVN, because it fits the environment better. Use the tool
that fits the job, and move on.

I agree - and to stress the topic further, there is this site which does
a comparision of version control systems based on features:

http://better-scm.berlios.de/comparison/comparison.html

I’m using SVN at home and ClearCase at work - in regard to what I know
of both of them the comparison looks sane.

I did choose SVN because I’ve heard about it. And it does work for me,
so I didn’t switch to something else.

Well, and there is

http://en.wikipedia.org/wiki/Comparison_of_revision_control_software

I cannot answer the original posters question, so this is completely
off-topic.

Stefan


#8

To quote from the SVN webpage:
Subversion is meant to be a better CVS, so it has most of CVS’s
features. Generally, Subversion’s interface to a particular feature is
similar to CVS’s, except where there’s a compelling reason to do
otherwise.

Without delving into specifics, SVN makes it a lot easier to do things
than CVS does, especially administrative tasks and branching etc.

It’s powerful enough to draw hardcore CVS users to it, and power/easy
enough to draw hardcore VSS* users to it.

–Kyle

  • Sometimes those hardcore visual source safe users are companies.
    Whole big fat companies who makes oodles of money and don’t bat an eye
    at 3k/machine licensing fees.

#9

There is no bad system but I wouldn’t go back to previous ones.
Having used Visual Source Safe extensively I have to take exception to
that statement :wink:


#10

Trans schrieb:

Should I be using SVN rather than Darcs or Git?
I use git for the reason of very simple branching and fast branch
switching. If I want to try something out, I create a new branch and
check it out. Then programming and testing a bit make commits of some
steps and if I don’t like it I can throw the complete branch away
without changing the main development stream. If it is nice I merge it
and delete the no longer needed branch. Therefore I like git. :slight_smile:

In subversion I have never create a branch: It was to expensive for me.

m2c
Jan


#11

While distributed version control systems offer some benefits, they’re
still not really mainstream. Most developers are accustomed to the way
things are done in central repositories, and working offline is, with
the exception of maybe a short stint on a plane or train, not that
common nowadays. The benefits of darcs, etc. don’t really justify the
effort that would need to be put into migrating the existent proven
infrastructure and potentially alienating some people who are put of
by the slightly esoteric nature of the alternatives. A clear case of
“if it ain’t broke, don’t fix it”. That shouldn’t keep you from
hosting your code in darcs though if you prefer.

-tim


#12

On Mar 12, 3:46 pm, “Tanner B.” removed_email_address@domain.invalid wrote:

On 3/12/07, Glen H. removed_email_address@domain.invalid wrote:

Why not SVN?

This is going a bit OT for ruby-talk, but I’ll bite.

To be clear I’m asking why rubyists in particluar choose one over
the other --not so off topic.

At work, where I work from a single workstation, always connected to the
network, I use SVN, because it fits the environment better. Use the tool
that fits the job, and move on.

So you actually use both. I hate the lack of DRY in that, but it looks
like I may have to go down that road too.

Thanks,
T.


#13

On 3/12/07, Trans removed_email_address@domain.invalid wrote:

push all my changes back to my main repo and be good to go, SVN can’t give
me that kind of work flow, so I’ve moved away from it. (I’m aware of SVK,
but never could get it working well on linux/mac/and windows)

At work, where I work from a single workstation, always connected to the
network, I use SVN, because it fits the environment better. Use the tool
that fits the job, and move on.

So you actually use both. I hate the lack of DRY in that, but it looks
like I may have to go down that road too.
Yes indeed, what is happening in the Ruby community is happening all
over the place.
SVN will simply replace CVS slowely but surely.

Thanks,
T.

Cheers
Robert


#14

On Mar 12, 5:55 pm, Jan F. removed_email_address@domain.invalid wrote:

Trans schrieb:> Should I be using SVN rather than Darcs or Git?

I use git for the reason of very simple branching and fast branch
switching. If I want to try something out, I create a new branch and
check it out. Then programming and testing a bit make commits of some
steps and if I don’t like it I can throw the complete branch away
without changing the main development stream. If it is nice I merge it
and delete the no longer needed branch. Therefore I like git. :slight_smile:

In subversion I have never create a branch: It was to expensive for me.

See now this is interesting. Cause I feeling inclined toward Git for
these same reasons. In fact here’s a diagram of me being torn:

              I, Torn

                 O

SVN <-- --|-- --> Git
/
Solid Darcs Faster
Popular Stronger
Supported Better

Not that Darcs hasn’t been good to me.

:slight_smile: T.


#15

Trans wrote:

Should I be using SVN rather than Darcs or Git?

No one else has mentioned it, and I’m sure it’s not relevant for you,
but TortoiseSVN is enough of a reason in itself for me to choose SVN for
any project where I might have to do anything on Windows. It’s just
that good.

Other than that, I’m a big darcs fan too.


#16

On 3/12/07, Tanner B. removed_email_address@domain.invalid wrote:

me that kind of work flow, so I’ve moved away from it. (I’m aware of SVK,
but never could get it working well on linux/mac/and windows)

At work, where I work from a single workstation, always connected to the
network, I use SVN, because it fits the environment better. Use the tool
that fits the job, and move on.

Is this the only real compelling reason to switch to Darcs or similiar
alternatives? For me I’m never off the net long enough for the
centralized repository in svn to become a problem. Even when I’m
working from a laptop most of the day, I’ll have free wifi available
somewhere to sync up.

  • Rob

#17

On 12-Mar-07, at 7:07 PM, Rob S. wrote:

normal manner, without worrying about the fact that when I DO get a
but never could get it working well on linux/mac/and windows)
working from a laptop most of the day, I’ll have free wifi available
somewhere to sync up.

The ability to cherry pick patches is also a real benefit.

–jer


#18

On Mar 12, 2007, at 6:13 PM, Jeremy T. wrote:

extremely useful for me to be able to record changes, branch,
me that kind of work flow, so I’ve moved away from it. (I’m
similiar
alternatives? For me I’m never off the net long enough for the
centralized repository in svn to become a problem. Even when I’m
working from a laptop most of the day, I’ll have free wifi available
somewhere to sync up.

The ability to cherry pick patches is also a real benefit.

Is it, really? I’m not trying to be combative, I’m just wondering
how often that comes up.

It sounds darn cool to the geek in me, but I find myself wondering if
it happens a lot. I guess I can envision a few specialized scenarios
where it could be handy, but I really don’t feel I would use it much
for mainstream software.

For example, I really doubt there are many patches to Ruby I want to
skip out on.

James Edward G. II


#19

Rob S. wrote the following on 13.03.2007 00:07 :

connection all my changes will show up as one big lump. So I use
At work, where I work from a single workstation, always connected to the
network, I use SVN, because it fits the environment better. Use the
tool
that fits the job, and move on.

Is this the only real compelling reason to switch to Darcs or similiar
alternatives? For me I’m never off the net long enough for the
centralized repository in svn to become a problem. Even when I’m
working from a laptop most of the day, I’ll have free wifi available
somewhere to sync up.

I’m currently looking at decentralized version control systems for my
own needs. So it’s my early ideas on the subject, feel free to correct
them…

Where it can help is when a developper has a bright idea and want to
implement it without impacting others. She creates a branch on her local
repository to try out her idea and work with it (and can do for a
longtime, merging patches from the branch she follows usually along the
way). If you often have ideas being tried out, it can be a benefit
because these branches would all be cluttering your common repository
with a centralized system (this is why you can have lots of Linux kernel
trees with git, each with its own purpose, the most popular by far being
Linus Torvalds’ one).

This probably is a real benefit when you have lots of really good devs
all motivated to try out their ideas. This allows large group of
developpers to scale.

Lionel.


#20

On Tue, Mar 13, 2007 at 04:25:50AM +0900, Trans wrote:

Should I be using SVN rather than Darcs or Git?

Only if all your co-developers are. But otherwise, probably not.

So I’m wondering, what’s so special about SVN as opposed to the other
choices? Is it because SVN is more like CVS than the other choices?

Pretty much, it’s also been around longer and thus is “more mature.”

Subversion is reasonably familiar to those who are used to the CVS
paradigm
of revision control. Although just because people are used to it, and
it’s
popular, doesn’t make it necessarilly good. Frankly, I’m not much of a
fan
of Subversion, although I much prefer it to CVS.

Also, Git was written by Linus Torvalds, which is about as good as
credentials can get.

Yes, however Git was written to achieve nothing more than managing the
Linux kernel. The fact that it’s applicable to other problem domains is
a
coincidence, not a design feature. If you’re managing a project that
much
resembles the Linux kernel, Git might be the right choice for you. If
not,
there might be an impedance mismatch.

Recently I’ve become a fan of Mercurial. It has a few issues (besides
being written in Python =P), but otherwise I find it to be a better
match
for my needs than Subversion. I also considered Git, but I found it
much
less approachable, although 1.5.0 is supposed to be easier to use.

My biggest gripe with Subversion is that branch merges are braindead
(have
to specify revision boundaries), which makes branching much less useful
than it could be. Two minor gripes are that the BDB backend was a
mistake
only recently seems to have gone away, and that operations tend to be
painfully slow.

In general, I’m a fan of the distributed model of development, be it
with
Mercurial, Git, Darcs, etc. Branching is a great concept that isn’t
used
effectively in CVS or Subversion becuase of branch/merge limitations.

I like being able to checkout a project (often one I don’t have
permissions to the central repository other than read), make a bunch of
local changes and local commits that don’t affect other users, then
once
tested perform a branch push (possibly with a pull/merge).

I find that with Subversion folks are much less willing to make
intermediate commits since they tend to affect all users unless a
separate
branch is used, and branches are difficult with Subversion.

The one scenario where I find Subversion really useful is when I
specifically don’t want to maintain a local copy of an entire
repository,
especially a large one like the Linux kernel. With Subversion, I only
need
a local copy of the checked out revision. That’s the one thing where I
wish there was better handling in distributed revision control
systems–although folks may claim that such handling would break the
paradigm.