# Why SVN?

**URL:** <https://www.ruby-forum.com/t/why-svn/88576>\
**Category:** Ruby\
**Created:** [March 12, 2007, 8:26pm UTC](https://www.ruby-forum.com/t/why-svn/88576 "2007-03-12T20:26:32Z")\
**Posts on this page:** 20\
**Page:** 4

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 3, 2007, 5:51am UTC](https://www.ruby-forum.com/t/why-svn/88576/61 "2007-04-03T05:51:31Z")

</div>

To comment on the original question, SVN has the following going for it:

- free
- cross-platform
- commercial support
- large installations
- vast community knowledge
- editor/ide/tool integration
- visual UI options
- good administrative tools/practices
- fair security/authentication tools
- written in a common and performant language
- stable

I’ve used VSS, ClearCase, Perforce(currently at work), CVS, SVN, Darcs,  
SVK, and some others I can’t remember. Perforce is very good, but  
expensive. SVK - i do use it but I can’t seem to get past my bias  
against Perl. I couldn’t even begin to look at Git because I use Windows  
and Mac mostly. Darcs is performant, free, and cross-platform - all good

- but it doesn’t compete against the list above, at least not yet. I’m  
keeping my eye on it, though. I wouldn’t use VSS, CVS, or ClearCase  
again, given the choice.

I think this list is why SVN is such an easy choice. None of these are  
perfect, so it comes down to your work style and project needs.  
Distributed systems make more sense for start-ups with all remote devs  
than in big brick-and-mortar enterprises with all on-site development.  
Perforce would be hard to beat if it were free and had a distributed  
option, but I don’t see the free thing happening any time soon. Find  
wide adoption and support of Darcs, or decentralization of Subversion,  
and you may find a break-away leader. Until then you need to ask “which  
one fits the way I/we work?”.

Hope that helps. 🙂

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 3, 2007, 10:37am UTC](https://www.ruby-forum.com/t/why-svn/88576/62 "2007-04-03T10:37:46Z")

</div>

On Apr 2, 2007, at 20:51 , Kevin W. wrote:

> Perforce is very good, but  
> expensive.

Not entirely true. To be clear: Perforce licenses are FREE for open  
source projects.

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 3, 2007, 2:13pm UTC](https://www.ruby-forum.com/t/why-svn/88576/63 "2007-04-03T14:13:21Z")

</div>

On 4/2/07, Kevin W. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Perforce is very good, but expensive.

As Ryan said, this isn’t completely true for open source projects  
(although it seems a little harder for a non-GPLed project; I haven’t  
tried to set one up, yet). However, even for corporations, Perforce  
isn’t _that_ expensive compared to some of its competition and how  
much it provides, and the level of support is just amazing.

It’s not going to be something that start-ups use first, though. If I  
were to use Perforce myself, though, I’d set up a public read-only SVN  
repository for others to access.

-austin

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 3, 2007, 3:02pm UTC](https://www.ruby-forum.com/t/why-svn/88576/64 "2007-04-03T15:02:28Z")

</div>

On 4/3/07, Kevin W. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> - fair security/authentication tools  
> again, given the choice.
> 
> Hope that helps. 🙂

You did not mention mercurial which is easier to start with than  
darcs. It uses python which is more widespread than the thing darcs  
uses.  
Unlike git I haven’t seen a large project using mercurial (yet).  
However, I guess pretty much all the advantages you named above would  
apply to mercurial as well.

There is a link to SCM comparison site earlier in the thread. From  
that it looks like the centralized SCMs are more space efficient in  
some cases (ie working on part of the repository) at the cost of being  
less flexible (only one central repository to which you need access  
all the time, harder branching).

To me the move the use of distributed SCM brings complete new way of  
thinking about code management that things like SVK do not. All the  
repositories are the same, one may be “central” only because more  
people use it than any other.

Thanks

Michal

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [March 21, 2007, 5:30pm UTC](https://www.ruby-forum.com/t/why-svn/88576/65 "2007-03-21T17:30:53Z")

</div>

On 21 mar, 16:52, Adrian H. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> That’s basically it.

Many thanks for sharing.

Cheers,  
Greg

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 3, 2007, 3:08pm UTC](https://www.ruby-forum.com/t/why-svn/88576/66 "2007-04-03T15:08:30Z")

</div>

Michal S. wrote:

> You did not mention mercurial which is easier to start with than  
> darcs. It uses python which is more widespread than the thing darcs  
> uses.  
> Unlike git I haven’t seen a large project using mercurial (yet).

Mercurial was choosed by OpenSolaris, but I don’t know if it’s already  
used or not.

Source : [http://www.opensolaris.org/os/community/tools/scm/](http://www.opensolaris.org/os/community/tools/scm/)

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 3, 2007, 4:41pm UTC](https://www.ruby-forum.com/t/why-svn/88576/67 "2007-04-03T16:41:12Z")

</div>

Jan F. wrote:

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

Well, it is cheap in git as it is in svn, the differences are not  
there… The distributed/decentralised model is the biggest difference.

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 3, 2007, 4:43pm UTC](https://www.ruby-forum.com/t/why-svn/88576/68 "2007-04-03T16:43:41Z")

</div>

Ryan D. wrote:

> Not entirely true. To be clear: Perforce licenses are FREE for open  
> source projects.

But having to renew the licenses every year is a PITA. (been there, done  
that for 5 years and saw the process getting more complicated over the  
years).

In the end, I switched over to Arch when they asked me to _fax_ both the  
GPL and BSD license to them to get my renewed license… Nuff said.

I’ve switched to Mercurial and won’t come back ever to centralised  
systems like svn.

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 3, 2007, 6:39pm UTC](https://www.ruby-forum.com/t/why-svn/88576/69 "2007-04-03T18:39:40Z")

</div>

On Tue, 3 Apr 2007 23:41:14 +0900, Ollivier R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> Jan F. wrote:
> 
> > Trans schrieb:  
> > In subversion I have never create a branch: It was to expensive for me.
> 
> Well, it is cheap in git as it is in svn, the differences are not  
> there…

In my experience that isn’t really true – git has much better merge  
tracking than svn, so repeated merges on long-lived branches are  
substantially less painful with git.

-mental

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 3, 2007, 5:17pm UTC](https://www.ruby-forum.com/t/why-svn/88576/70 "2007-04-03T17:17:23Z")

</div>

Ollivier R. wrote:

> Well, it is cheap in git as it is in svn, the differences are not  
> there…  
> The main difference is for me that in svn the branch is a part of the  
> hole history of the repository while in git a can simple delete a branch  
> and it is not any more existent. Therefore I use it in many cases when I  
> don’t know if an idea is best way to solve a particular problem. If I  
> want to do it this way, I merge it to the master and delete the  
> temporary branch. Otherwise I delete the branch also and don’t see it  
> again. This is my definition of cheap: temporary branches.

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 3, 2007, 7:40pm UTC](https://www.ruby-forum.com/t/why-svn/88576/71 "2007-04-03T19:40:47Z")

</div>

On Apr 3, 2007, at 05:13 , Austin Z. wrote:

> It’s not going to be something that start-ups use first, though. If I  
> were to use Perforce myself, though, I’d set up a public read-only SVN  
> repository for others to access.

That is hard to do actually. At least, I haven’t found any scripts  
that do a good job of it (esp with continual/periodic updates). I’m  
finishing up the last of the edge cases on my script to do just that  
and will be releasing it “soon”. I think all I have left is to delete  
empty dirs in svn (which at this point I may just do by hand because  
it isn’t THAT big of a deal).

If you know of any good scripts for this, I’d love to look at them.

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 3, 2007, 7:37pm UTC](https://www.ruby-forum.com/t/why-svn/88576/72 "2007-04-03T19:37:46Z")

</div>

On Apr 3, 2007, at 07:43 , Ollivier R. wrote:

> Ryan D. wrote:
> 
> > Not entirely true. To be clear: Perforce licenses are FREE for open  
> > source projects.
> 
> But having to renew the licenses every year is a PITA.

It isn’t _that_ much of a PITA for the benefits of using perforce for  
free.

> (been there, done  
> that for 5 years and saw the process getting more complicated over the  
> years).

No, it is getting easier.

I’ve been running my perforce server for about 8 years running now  
and while for a while they were indeed requiring a FAX of the license  
application form their lawyers (behind the times as lawyers always  
seem to be) finally realized the benefits of the electronic signature  
act and accept email.

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 4, 2007, 10:40am UTC](https://www.ruby-forum.com/t/why-svn/88576/73 "2007-04-04T10:40:49Z")

</div>

“Austin Z.” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> were to use Perforce myself, though, I’d set up a public read-only SVN  
> repository for others to access.

I saw an interesting article about bazaar, which is meant to be a  
replacement  
for subversion that is designed specifically for open source type  
projects  
which have many different contributors/developers and is supposed to be  
easier  
and more intuitive than subversion. It sounded interesting.

Tim

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 4, 2007, 2:38pm UTC](https://www.ruby-forum.com/t/why-svn/88576/74 "2007-04-04T14:38:57Z")

</div>

MenTaLguY wrote:

> In my experience that isn’t really true – git has much better merge  
> tracking than svn, so repeated merges on long-lived branches are  
> substantially less painful with git.

Yes, this is a major drawback of current svn (although svk sorta fixes  
that problem). svn has more problems anyway 🙂

Disclaimer: I’m the author of a paper on using dVCS on FreeBSD with  
focus on Arch & Mercurial.

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 4, 2007, 2:40pm UTC](https://www.ruby-forum.com/t/why-svn/88576/75 "2007-04-04T14:40:09Z")

</div>

Ryan D. wrote:  
-\> I’ve been running my perforce server for about 8 years running now

> and while for a while they were indeed requiring a FAX of the license  
> application form their lawyers (behind the times as lawyers always  
> seem to be) finally realized the benefits of the electronic signature  
> act and accept email.

That’s good for them. I got hooked on dVCS when I switched to Arch then  
Mercurial so any centralised VCS is out in my book (and P4 is even more  
centralised than svn :-)).

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 3, 2007, 8:32pm UTC](https://www.ruby-forum.com/t/why-svn/88576/76 "2007-04-03T20:32:53Z")

</div>

On 4/3/07, Ryan D. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> If you know of any good scripts for this, I’d love to look at them.

I’m not actually using Perforce at all for my OSS work, so I don’t  
have anything, sadly. I like hearing what you’re saying, though, and  
it’ll be worth looking at when you release it.

-austin

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 4, 2007, 8:55pm UTC](https://www.ruby-forum.com/t/why-svn/88576/77 "2007-04-04T20:55:54Z")

</div>

On Apr 4, 2007, at 05:40 , Ollivier R. wrote:

> more  
> centralised than svn :-)).

I’m totally fine with centralized VCS.

I’m even more fine with software that doesn’t corrupt repositories,  
is easy to back up, easy to understand, and works really well / stays  
out of my way. Perforce is rock solid and has a long standing rock  
solid history. I _have_ to have 100% complete trust in my VCS and its  
backups. I simply can’t say that about much of any other VCS out  
there (except the nice stable old ones, like CVS). Too new. Too  
buggy. Too experimental. Too full of agendas. I just want to get work  
done.

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 4, 2007, 3:10pm UTC](https://www.ruby-forum.com/t/why-svn/88576/78 "2007-04-04T15:10:18Z")

</div>

On 4-Apr-07, at 8:38 AM, Ollivier R. wrote:

> MenTaLguY wrote:
> 
> > In my experience that isn’t really true – git has much better merge  
> > tracking than svn, so repeated merges on long-lived branches are  
> > substantially less painful with git.
> 
> Yes, this is a major drawback of current svn (although svk sorta fixes  
> that problem). svn has more problems anyway 🙂
> 
> Disclaimer: I’m the author of a paper on using dVCS on FreeBSD with  
> focus on Arch & Mercurial.

Is this paper available anywhere?

Mike

–

Mike S. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
[http://www.stok.ca/~mike/](http://www.stok.ca/~mike/)

The “`Stok’ disclaimers” apply.

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 4, 2007, 9:09pm UTC](https://www.ruby-forum.com/t/why-svn/88576/79 "2007-04-04T21:09:58Z")

</div>

> I’m totally fine with centralized VCS.
> 
> I’m even more fine with software that doesn’t corrupt repositories,  
> is easy to back up, easy to understand, and works really well / stays  
> out of my way. Perforce is rock solid and has a long standing rock  
> solid history. I _have_ to have 100% complete trust in my VCS and its  
> backups. I simply can’t say that about much of any other VCS out  
> there (except the nice stable old ones, like CVS). Too new. Too  
> buggy. Too experimental. Too full of agendas. I just want to get work  
> done.

To me, that only sounds like an argument against using Visual Source  
Safe 😉

As far as backing up an SVN repository (especially if it’s using the  
file system instead of BDB) tar does a pretty good job.

For the completely paranoid people that are afraid their backup will  
be useless in 5 years because software will no longer be available, or  
the current version won’t read the old version, the svn source code is  
small enough to be included on the backup disc.

---

<div class="post-metadata">

**Author:** ![Trans](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/dfb087/32.png) [@Trans](https://www.ruby-forum.com/u/Trans)\
**Post date:** [April 5, 2007, 1:12am UTC](https://www.ruby-forum.com/t/why-svn/88576/80 "2007-04-05T01:12:23Z")

</div>

On Apr 4, 2007, at 12:09 , Kyle S. wrote:

> To me, that only sounds like an argument against using Visual  
> Source Safe 😉

Well, that’s just a given.

> As far as backing up an SVN repository (especially if it’s using the  
> file system instead of BDB) tar does a pretty good job.

I think this is part of the problem. I don’t want to think about what  
storage mechanism it uses (past an evaluation stage at least). I  
don’t want to have to think: Did they test this storage format as  
well as the previous? What are the repercussions of using this over  
the other (eg http vs svn protocol)? I just want it to work so I can  
do the same.

I’ve seen too much SVN corruption already to trust it.

[Previous page](https://www.ruby-forum.com/t/why-svn/88576.md?page=3)

[Next page](https://www.ruby-forum.com/t/why-svn/88576.md?page=5)
