views:

2386

answers:

21

I personally used Mercurial and Subversion in a limited way and I just can't see why 95% of the people will chose SVN over something else. Is it just a monopoly case or is there a lot of good hidden in SVN that other systems don't have?

+69  A: 

It is free, has open source, has good documentation, is widely used, simple/easy to use, has a significant functionality set, available on lots of platforms, support available.

There is not much more that you can ask of a piece of software.

Tim
Well, at least until this summer, it was *horrible* at handling merges (haven't really used it since, so can't say how much that has improved), and it can be a bit of a pain to set up compared to some of the alternatives which only need a FTP server to act as central repository.
jalf
@jalf: popularity is still a very important feature
orip
And it's very similar to CVS and CVS has/had a huge user base!
Aaron Digulla
What about branches that don't mimic the VSS model?
BubbaT
The alternatives are free, open source, have good documentation, simple and easy to use, have a larger functionality set and area available on lots of platforms. More importantly, they actually do the things I need where svn does not.
Dustin
Dustin, one could argue that the alternatives have not been available as long so have not gotten as widespread use (important) and also are a little more difficult to use/set up. I am not advocating one over the other - svn got a lot right and they have a huge fan base.
Tim
Tim, svn wasn't very usable when I started using DVCS. Of course, DVCS wasn't very usable then, either, but it was very obviously the future from the moment I got going.
Dustin
@jalf - you think so? I've never had a problem with merging in svn
Jess
Surprised no one mentioned the TortoiseSVN plugin for Windows. Without it, I'd be lost in svn command land!
Nick DeVore
What's so bad about command land? :)
Lucas Jones
Skilldrick
@Lucas: for the l33t ub3r h4xx0r or even the experienced dev, it's fine. But when you're just wanting to develop some app without getting bothered by all that "source control stuff" or are a hobby programmer, a good GUI is a must.
RCIX
Generally speaking, the centralized model employed by SVN works very well for companies that develop proprietary software. The distributed model is particularly well suited to the de-centralized nature of Open Source development.
Brian Lacy
+22  A: 

It's all about support.

  • support by documentation
  • support by IDE's
  • support by hosting companies
  • support at enterprise level

Support, support, support.

gizmo
+2  A: 

For our purposes, it was easy to stand up, easy to work with and has good integration tools into our IDE of choice. Is it the best? maybe not, but as far as a central repository is concerned it does the trick.

Jeremy B.
A: 

It's much better than CVS, that people used before. And it has so few disadvantages, that people don't have the feeling, they should try something else. Subversion is enough for most needs, so they try nothing else, even it may be more productive. I haven't used mercurial yet (I want to give it a try, but don't have time, and as SVN works this has no high priority on my list).

Besides, distributed version-control starts more complicated at the beginning, so people might be frightened.

Mnementh
+37  A: 
  • Most developers aren't used to distributed source control yet. There's less of a conceptual move from one "traditional" SCM to SVN. In particular it's a natural migration path from CVS.
  • Subversion has been out for longer. Don't underestimate how long it takes to get traction.
  • Not only does SVN have more momentum due to how long it's been out - it also has a track record. It's been stable for a long time, and has been trusted by many projects without letting them down. If you're a manager, that's the kind of thing you want to hear.
  • Subversion is well integrated with many IDEs. Perhaps that's the case with Mercurial as well, but it certainly isn't with git.

Personally I'm just starting to get to grips with git having been a Subversion fan for a long time. I'm still more comfortable with Subversion, but it would be foolish to deny the advantages of distributed source control...

Jon Skeet
+4  A: 

Many people come from CVS and Subversion is probably the SCM most like CVS and thus easy to learn.

boutta
+9  A: 

CVS used to be the default (it was pretty much the only answer). SVN was designed explicitly to be a better CVS. It makes sense that many of the CVS users would migrate to SVN because it fixes nearly all of CVS's faults, is easier to use and maintain, adds new features, and has a really easy migration path.

SVN also has its share of problems, but generally only advanced users will run into them. Systems such as Git and Mercurial seem to address those problems (I've only dabbled in git slightly, never mercurial). SVN is good enough for most purposes and has the userbase, community, and tool support to make it a very attractive choice for people just getting started.

rmeador
I disagree that only advanced users run into problems. I've seen plenty of developers doing simple stuff on small teams lose work due to bad merges on merge-then-commit systems like svn, p4, cvs, etc... When I'm done testing a bunch of code, I want it committed. Merging is a different problem.
Dustin
You can avoid merge then commit on all three of the repositories that you mentioned by working on your own branch. I've used (ironically) precisely the three you mention, and I work in precisely this manner.
kwutchak
+3  A: 

For centralized version control it's the safe option, it's good enough and everyone is using it. Together with tools like TortioseSVN it's pretty good. There are probably better solutions but they're not free, not as well known or both.

Decentralized version control fits the OSS way of working great but I don't think most companies will use it. Tracking changes and versions seems harder. It's easier to have many different versions of the code with many different permutations of bugs solved and features implemented and that's something that's hard to sell to management.

Mendelt
What do you mean "seems harder?" It's far easier. I've had developers sit on uncommitted code for *three months*. In either case, devs can hold onto their code. It's the only way I work regardless of what the corp uses (and that's currently git).
Dustin
To managers not having a centralized repository with a "main" version seems harder to maintain. I don't think you'll solve problems with developers not checking in code by using a different tool by the way...
Mendelt
+1  A: 

In about half a day or so I had SVN installed and authenticating against Windows domain accounts (using Apache) recognizing groups withing domain. Although I use both Windows and Unix for development, the company's backend services are all Microsoft. The fact it was easy to setup under a Microsoft environment was fantastic.

We don't do anythin fancy since most of the developers here own their entire project (we have yet to do any merging). And since anyone (with permission) can view the repository in their browser it's a great way of distributing releases.

Jamie
+1  A: 

We didn't just go with Subversion - in the early days we used Source Safe (stay away), then we grew and needed branching so we switched to TFS.

TFS is really hard to use in that way. Not user-friendly. At all. For a small operation (5 devs) like ours, it felt very bloated.

Also, TFS has this evil symbiosis with SharePoint, and that got bad for us. It wouldn't have been a problem if we had more IT resources and maybe a developer we could devote to these labyrinthine areas, but there were some serious IT meltdowns around our SharePoint install that made us scared for our source.

And because its branching is so arcane, it failed the very task we implemented it for!

We switched to Subversion about a month ago using VisualSVN as our client (which costs $50/seat but is more polished than the free AnkhSVN). VisualSVN is built on Tortoise and works great.

One of my favorite things about Subversion is that it can store your code as text files, rather than inside of a proprietary database (although it can use BerkleyDB as backend, the performance benefit is often negligable). So you don't have a situation where SharePoint goes down and your code is very hard to get at or maybe (gulp) gone. It's just text files on the disk.

So, it's free, lean, easy to use, and it just works. I'm very happy with Subversion.

Brian MacKay
TFS is not as bad as you make it out to be. On a full, Visual Studio suite integrated with an Office workflow, the "bloat" automates a lot of tasks. It's paradigm isn't that different than SVN so I don't understand why you say it's not user friendly (full disclosure: I prefer SVN).
James Schek
James - maybe we were just too small to feel the power. I did a little edit for you. Would you say that TFS shines the most with large teams that have a lot of IT infrastructure?
Brian MacKay
TFS isn't just bloated for a small team, it's bloody expensive too!!
Benjol
That is also true. Compared to Subversion, which is... Free.
Brian MacKay
A: 
MadKeithV
A: 

It's what people know. There doesn't have to be much more to it. Yes, once it's set up (which can be a pain), it's easy to use, yes it integrates well with most IDE's, yes there are nice tools available for it (TortoiseSVN for example), and yes, it's been stable for a long time, but all these things just mean that most people don't see an urgent need to even look at the alternatives.

It's widely used basically because it's widely used. People are familiar with it, and pretty much everyone use it "by default".

I'm still getting used to Bazaar and the idea of decentralized SCM, but already I'm more or less convinced that it's a better model for pretty much any project. But it's an uphill struggle because it's a new concept that people have to get used to, and integrate into their workflow.

jalf
+5  A: 

I find it to be amazingly fast to get set up. If I use the VisualSVN server (free) and the AnkhSVN VS plugin (also free) and add the TortoiseSVN shell extension, I can get your code under source control plus 3 clients in less than 20 minutes. Easy as pie... well supported...

Is the best out there? Probably not. But it sure is easy to set up.

Brian Genisio
+1  A: 

For me: free, good documentation, good integration into Windows via TortoiseSVN and the perception of being a standard and a natural successor to CVS made it a pretty obvious choice.

Ian Hopkinson
+5  A: 

Not everyone goes with SVN, some of us are using GIT ... ;)

Thomas Hansen
And some are using Bazaar...
ceretullis
And some are using Mercurial...
jpartogi
And all of them just love typing at the command line...
Maltrap
A: 

SVN looked promising, but after trying a few projects with it, I reverted to CVS. It's simple, and just works.

I wrote a blogpost on this, which ends with the sentence: "The more I think about it, SVN seems to be a nerd’s implementation to a theoretical problem, whereas CVS is a pragmatic solution to a real life situation."

If you like you can find the complete post here: http://www.rolfje.com/2008/02/16/svn-is-missing-the-point/

Rolf
I voted this up - I didn't think it was worth a downvote from someone. The link is interesting reading. I expect that svn will improve more over time and address some of the shortcomings/complaints.
Tim
Thanks Tim, appreciate it. I think SVN will (and should) improve, too. It just didn't fit in my organization (and I tried :-) )
Rolf
+1  A: 

It is free, stable, platform independent, easy to deploy, easy to integrate into an IDE, and widely used.

Those are my reasons for using it.

Andy Webb
A: 

I actually looked at Mercurial as a replacement for Subversion... I really liked the command syntax Mercurial has. Then I ran a little experiment. I took Boost's tar ball, unzipped and tried to check it in to a Mercurial repository.

I did this on Windows and Unix. It failed on Windows because of some path-depth bug in Mercurial.

Subversion and git did not have issues with this (neither did bazaar, IIRC). I didn't like Darc's command syntax. Git has putrid windows support (requiring Cygwin or MSYS) and almost no-one has heard of Bazaar... so I stayed with Subversion.

ceretullis
A: 

It's free, easy to administer, has the basic features small organizations need.

But from my experience it just can't beat the commercial alternatives (especially AccuRev, but also ClearCase, Perforce, etc.) which will give you much more than what svn is capabale.

nav.jdwdw
+2  A: 

GUI's.

From my experience, getting no techies to use version control is an uphill struggle. To give them a nice GUI and tell them to update/commit by right clicking on things is they only way they're going to use it.

Now, if only git had a clean, usable GUI, then it would really take off.

Mason
A: 

Aside from being widely used, you can find magnitude of hosting services which provide SVN repositories. However, I agree.. there are some pains in SVN.

Dima