# 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:** 2

<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 13, 2007, 3:52am UTC](https://www.ruby-forum.com/t/why-svn/88576/21 "2007-03-13T03:52:03Z")

</div>

On 3/12/07, Jeremy T. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> to say).

I think you hit it in just one direction. The real value I find in  
cherry picking is when I am providing a set of patches to an upstream  
developer who may or may not want to merge certain things at any one  
time. Most distributed systems handle this quite well though I think  
darcs wins when it comes to the user effort needed. Other systems  
often rely on complicated patch maintenance systems or force constant  
“rebasing” patches with each revision (better than no support though).

The end result seems to be that you can avoid playing the baby sitter  
between branches all the time. No more merge chores just to keep  
things up to date. Of course, that isn’t to say that avoiding merge  
work always works either.

With all of this talk about SVN vs. anything not CVS, I would love to  
see some ideas of how one could apply an svn interface to an existing  
distributed tool. Some get close but maybe someone should make a  
centralized “porcelain” for git? I don’t see any reason you couldn’t  
implement a good portion of behaviors people seem to like.

Brian.

---

<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 13, 2007, 2:28am UTC](https://www.ruby-forum.com/t/why-svn/88576/22 "2007-03-13T02:28:55Z")

</div>

On 12-Mar-07, at 8:05 PM, James Edward G. II wrote:

> On Mar 12, 2007, at 6:13 PM, Jeremy T. wrote:
> 
> > 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.

In certain cases it is, yes.

> 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.

There may be patches I’d want to skip out on in other projects –  
platforms I don’t need support for, objects I won’t use, you can  
continue this line of thought. Not having the ability to just discard  
those w/o affecting the repo’s consistency, is nice. Sure it’d only  
be used in corner cases, but when you stumble across such a corner  
case, you’ll wish you had that ability (or maybe you won’t, who am I  
to say).

–jer

---

<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 13, 2007, 9:17am UTC](https://www.ruby-forum.com/t/why-svn/88576/23 "2007-03-13T09:17:28Z")

</div>

Found this on Wikipedia.

“Many projects support both POSIX and Windows. Such projects typically  
avoid using an SCM system that poorly supports Windows, even if most  
developers use POSIX-based systems. Examples of projects that have  
publicly ruled out any use of git, due to git’s poor support of  
Windows, include Mozilla [3] and Ruby [4].”

T.

---

<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 13, 2007, 5:47am UTC](https://www.ruby-forum.com/t/why-svn/88576/24 "2007-03-13T05:47:11Z")

</div>

On Tue, Mar 13, 2007 at 09:21:36AM +0900, Mike K. wrote:

> 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.

Bazaar (also written in Python :-)) has had lightweight checkouts for a  
while:

[http://bazaar-vcs.org/SharedRepositoryTutorial?highlight=(lightweight)](http://bazaar-vcs.org/SharedRepositoryTutorial?highlight=%28lightweight%29)

They should also work for Subversion repositories.

---

<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 13, 2007, 9:33am UTC](https://www.ruby-forum.com/t/why-svn/88576/25 "2007-03-13T09:33:30Z")

</div>

> With all of this talk about SVN vs. anything not CVS, I would love to  
> see some ideas of how one could apply an svn interface to an existing  
> distributed tool. Some get close but maybe someone should make a  
> centralized “porcelain” for git? I don’t see any reason you couldn’t  
> implement a good portion of behaviors people seem to like.

Porcelain? 🙂 I was expecting to find a SVN UI with the google I just  
did.

---

<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 13, 2007, 7:31pm UTC](https://www.ruby-forum.com/t/why-svn/88576/26 "2007-03-13T19:31:18Z")

</div>

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

> > With all of this talk about SVN vs. anything not CVS, I would love to  
> > see some ideas of how one could apply an svn interface to an existing  
> > distributed tool. Some get close but maybe someone should make a  
> > centralized “porcelain” for git? I don’t see any reason you couldn’t  
> > implement a good portion of behaviors people seem to like.
> 
> Porcelain? 🙂 I was expecting to find a SVN UI with the google I just did.

From [http://git.or.cz/](http://git.or.cz/)

“Besides providing a version control system, the Git project provides  
a generic low-level toolkit for tree history storage and directory  
content management. Traditionally, the toolkit is called the plumbing.  
Several other projects (so-called porcelains) offer compatible version  
control interfaces - see the related tools list.”

I guess that is the mentality you get from a linux kernel hacker. It’s  
all plumbing or it must be porcelain. 🙂

Brian.

---

<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 13, 2007, 8:35pm UTC](https://www.ruby-forum.com/t/why-svn/88576/27 "2007-03-13T20:35:30Z")

</div>

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

> The other thing to note is that you can use two SCMs at once. I quite  
> often push to a darcs repo that is also a SVN checkout. Once I get the  
> patchset to a state I like, I can commit a huge chunk all at once, and  
> use the darcs changelog to make a good commit entry.

I’d love to hear about this in more detail (off list if you prefer),  
in terms of best practices, any drawbacks you’ve discovered, etc…  
We’re in the process of moving from Mercurial to SVN at work, and if  
possible I’d like to continue using Mercurial for developing  
experimental features, and then check them into the main SVN  
repository when they’re completed.

martin

---

<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 14, 2007, 1:10am UTC](https://www.ruby-forum.com/t/why-svn/88576/28 "2007-03-14T01:10:10Z")

</div>

Hi,

In message “Re: Why SVN?”  
on Tue, 13 Mar 2007 04:25:50 +0900, “Trans” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:

|Should I be using SVN rather than Darcs or Git?

For your information, I use stgit for managing my local Ruby  
repository. I wanted to manage my experimental patches in stack  
based.

```
          matz.

```

---

<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 13, 2007, 4:11pm UTC](https://www.ruby-forum.com/t/why-svn/88576/29 "2007-03-13T16:11:38Z")

</div>

> > 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.

I like the ability to develop a patchset as an object – ‘here, does  
this set work?’ – and discuss. I like the orientation of discussing  
changes rather than states.

I cherry-pick a lot – it also lets me take my production copy – which  
has a couple site-specific changes to version-controlled files still –  
and make a hotfix and push back to the repo from that without getting my  
changes mixed in.

It suits my workflow.

The other thing to note is that you can use two SCMs at once. I quite  
often push to a darcs repo that is also a SVN checkout. Once I get the  
patchset to a state I like, I can commit a huge chunk all at once, and  
use the darcs changelog to make a good commit entry.

I’m trying git with one project. So far, so good. It’s also a really  
good tool. And mightily fast.

Aria

---

<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 14, 2007, 7:11am UTC](https://www.ruby-forum.com/t/why-svn/88576/30 "2007-03-14T07:11:32Z")

</div>

I like the ability to develop a patchset as an object – ‘here, does  
this set work?’ – and discuss. I like the orientation of discussing  
changes rather than states.

I cherry-pick a lot – it also lets me take my production copy – which  
has a couple site-specific changes to version-controlled files still –  
and make a hotfix and push back to the repo from that without getting my  
changes mixed in.

[[http://www.thtmobile.com](http://www.thtmobile.com)]Mobile Solution  
[[http://www.thtmobile.com/partners.htm](http://www.thtmobile.com/partners.htm)] Mobile Solutions

---

<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 14, 2007, 11:08am UTC](https://www.ruby-forum.com/t/why-svn/88576/31 "2007-03-14T11:08:09Z")

</div>

On 3/13/07, Yukihiro M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hi,  
> …  
> For your information, I use stgit for managing my local Ruby  
> repository. I

Oh oh, Matz, you’re going to get the pythonistas all excited

–  
Rick DeNatale

My blog on Ruby  
[http://talklikeaduck.denhaven2.com/](http://talklikeaduck.denhaven2.com/)

---

<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 14, 2007, 2:16pm UTC](https://www.ruby-forum.com/t/why-svn/88576/32 "2007-03-14T14:16:52Z")

</div>

On Mar 13, 8:09 pm, Yukihiro M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Hi,
> 
> In message “Re: Why SVN?”  
> on Tue, 13 Mar 2007 04:25:50 +0900, “Trans” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:
> 
> |Should I be using SVN rather than Darcs or Git?
> 
> For your information, I use stgit for managing my local Ruby  
> repository. I wanted to manage my experimental patches in stack  
> based.

Cool. So how do you sync back up with the SVN repo? I tried using SVN  
and Darcs on the same project and ran into problems. Maybe it’s not a  
problem with Git? Or do you have to do something special?

T.

---

<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 14, 2007, 5:22pm UTC](https://www.ruby-forum.com/t/why-svn/88576/33 "2007-03-14T17:22:26Z")

</div>

Hi,

In message “Re: Why SVN?”  
on Wed, 14 Mar 2007 22:16:13 +0900, “Trans” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:

|Cool. So how do you sync back up with the SVN repo? I tried using SVN  
|and Darcs on the same project and ran into problems. Maybe it’s not a  
|problem with Git? Or do you have to do something special?

I used tailor to import repository from svn to git. After that, I  
have a directory that have both .svn and .git sub-directories. Maybe  
git-svn would do better job.

```
          matz.

```

---

<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 14, 2007, 5:26pm UTC](https://www.ruby-forum.com/t/why-svn/88576/34 "2007-03-14T17:26:27Z")

</div>

Hi,

In message “Re: Why SVN?”  
on Wed, 14 Mar 2007 19:07:15 +0900, “Rick DeNatale”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|\> For your information, I use stgit for managing my local Ruby  
|\> repository. I  
|  
|Oh oh, Matz, you’re going to get the pythonistas all excited

I don’t want to have prejudice against tools by the language they are  
written, until I have to hack them. I abandoned tailor (and svk) for  
that exact reason.

```
          matz.

```

---

<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 14, 2007, 9:47pm UTC](https://www.ruby-forum.com/t/why-svn/88576/35 "2007-03-14T21:47:15Z")

</div>

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

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

Yes.

Darcs and Git are distributed version control systems without much  
proven technology behind them, and are painfully Unix-oriented.

> 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.

Quality in kernel management doesn’t mean his version control system  
is any good. I’m not saying it’s bad – at all – but the credentials  
don’t transfer there.

Distributed systems fit very few development models.

-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:** [March 14, 2007, 9:53pm UTC](https://www.ruby-forum.com/t/why-svn/88576/36 "2007-03-14T21:53:16Z")

</div>

On 3/12/07, James Edward G. II [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> 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.

Spot on, James. Most of the time, patches can’t actually be simply  
cherry-picked in any environment.

It’s easier with advanced version control systems like Perforce, but I  
find I don’t generally cherry-pick those anyway.

-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:** [March 14, 2007, 10:01pm UTC](https://www.ruby-forum.com/t/why-svn/88576/37 "2007-03-14T22:01:19Z")

</div>

On 3/14/07, Austin Z. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> > The fact that SVN isn’t distributed I would think would work against
> 
> -austin

I can’t resist replying to this troll. I call FUD on the “distributed  
version control systems without much proven technology behind them”  
claim until we get details. I’d really like to hear why you think you  
have a winner just because something is different. It’s obvious you  
think you have a great reason to feel strongly about using Subversion.  
I think it is only fair that you share why if you plan on telling  
people such absolutes. So please, enlighten me.

Brian.

---

<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 15, 2007, 2:07am UTC](https://www.ruby-forum.com/t/why-svn/88576/38 "2007-03-15T02:07:47Z")

</div>

On 3/14/07, Brian M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> I can’t resist replying to this troll. I call FUD on the “distributed  
> version control systems without much proven technology behind them”  
> claim until we get details. I’d really like to hear why you think you  
> have a winner just because something is different. It’s obvious you  
> think you have a great reason to feel strongly about using Subversion.  
> I think it is only fair that you share why if you plan on telling  
> people such absolutes. So please, enlighten me.

Careful who you call troll. You’ll find your assumption comes back to  
bite you.

Technology is proven by (1) wide use and (2) long experience. CVS and  
Subversion at this point are proven technologies that are widely  
adopted. That doesn’t necessarily make them best of class, but it  
means that people know what to expect from them. Some of that will  
include bugs, but the core technology is proven. There are billions of  
lines of code in CVS and Subversion systems being protected and  
managed right now.

Subversion has meaningfully improved upon CVS and has improved the  
state of the art for open source centralized source management. I  
wouldn’t dare call it best of class, but I would use it for any open  
source project because it (1) has a lower barrier of entry across  
platforms and (2) works in ways that people expect it to. I’m less  
convinced that I’d use it for professional software development after  
my experience with Perforce at my current job. Perforce is an  
absolutely amazing piece of software that gives many of the supposed  
benefits of distributed development platforms (lightweight branches,  
patch cherry picking), and with p4proxy, you get better distributed  
development (although _not_ apparently disconnected distributed  
development).

There’s so many different distributed systems right now that work  
differently from each other and have forked because of differences in  
opinion on how the programs should work that it’s nearly impossible to  
choose one reliably. Many of them suffer from an extreme anti-Windows  
bias and very few of them (if any!) have GUI support for visualizing  
changes over time. I personally find disconnected distributed version  
control systems to be very fragile in that entire branches can go away  
because a middle version is purposefully or accidentally deleted.  
People say that distributed systems have cheap branching, but I find  
that very hard to believe, since (at least in the ones that I’ve  
tried, and I have a hard time imagining how others would differ) the  
branches are physical copies in a different location. That’s cheap for  
the making, yes, but your total storage cost goes up (since none of  
the advantages of having a single repository can be found) and it then  
becomes possible to _lose_ branches from your repository (cf fragility  
above).

There’s a lot of things to like about the _ideas_ of DDSCM, but in the  
real world, I find that I’m rarely disconnected from the 'net long  
enough to care about the fact that I’m using a centralised management  
system.

So no, not a troll. Well informed using shorthands that should have  
been pretty easy to determine if you weren’t blinkered by the  
proponents of DDSCM in the first place.

-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:** [March 15, 2007, 2:50am UTC](https://www.ruby-forum.com/t/why-svn/88576/39 "2007-03-15T02:50:50Z")

</div>

On 3/14/07, Austin Z. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> On 3/14/07, Brian M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:
> 
> > I can’t resist replying to this troll. I call FUD on the “distributed  
> > version control systems without much proven technology behind them”  
> > claim until we get details. I’d really like to hear why you think you  
> > have a winner just because something is different. It’s obvious you  
> > think you have a great reason to feel strongly about using Subversion.  
> > I think it is only fair that you share why if you plan on telling  
> > people such absolutes. So please, enlighten me.
> 
> Careful who you call troll. You’ll find your assumption comes back to bite you.

I knew I could count on a good reply. I know you are a good debater. I  
need not bring up the topic of benchmarking with you for example. 😉

> Technology is proven by (1) wide use and (2) long experience. CVS and  
> Subversion at this point are proven technologies that are widely  
> adopted. That doesn’t necessarily make them best of class, but it  
> means that people know what to expect from them. Some of that will  
> include bugs, but the core technology is proven. There are billions of  
> lines of code in CVS and Subversion systems being protected and  
> managed right now.

Yes. Though there a millions of lines of code written in languages a  
lot here would consider primitive. There are also millions of more  
lines of code being written with no version control as well (I would  
guess, though there is no denying that this number is larger than it  
should be). I think I will agree that the wide spread use is  
important, but I don’t think adoption is the only metric to look at.

> development (although _not_ apparently disconnected distributed  
> development).

No argument here. There are a lot of projects that thrive off of easy  
entry. I think Ruby on Rails is an excellent example that many in this  
community have been influenced by. I hear more and more people taking  
up Subversion because of how pleasantly it works with the rails  
development environment.

Professionally, I use subversion, though my team is looking to migrate  
to something that does a better job at branch management and merging.  
The verdict hasn’t been given yet, but it will likely also be  
distributed. Your review (and the reviews of others in this community)  
might make an impact. I will likely give Perforce another shot (though  
I know the team I work with is much more likely to want something open  
source).

The important thing here is, for those of us who can afford to learn a  
new tool (effort required here is usually exaggerated), the history of  
a tool is a smaller barrier to entry (provided it works correctly). I  
am much more likely to pick up an alternative in some of my projects  
because of this.

> tried, and I have a hard time imagining how others would differ) the  
> branches are physical copies in a different location. That’s cheap for  
> the making, yes, but your total storage cost goes up (since none of  
> the advantages of having a single repository can be found) and it then  
> becomes possible to _lose_ branches from your repository (cf fragility  
> above).

I have to admit that none of the people I work with write their code  
in a Windows environment. In fact, as a team, we officially don’t  
support it. The only windows environments we have left are for testing  
some of the web applications in Internet Explorer. This would probably  
count as a bit of context I guess.

I will note that I’ve never had a branch problem, though I guess it  
depends on how you manage your code. I usually have very little that  
could be lost if I, for some reason, wanted to rm -rf a working copy.  
I think most of this is helped by following a set of conventions for  
each tool. There is a reason subversion makes use of the  
trunk-tag-branch structure… and there are similar reasons that  
people work certain ways with other tools. I usually have a couple  
places I put code depending on the project type. In many cases, I  
setup my environment with a central repository that represents  
something like a trunk. Real development is done outside of the trunk  
but synced in functional groups. Locally, small changes are recorded  
quite often (this accentuates the power of cherry picking in an  
interactive system). It seems that this duplication gives it the same  
“relative” reliability that a standard Subversion setup would have  
(detached code repo being one if you have multiple machines).

For cheap branches… I’m not sure either. It has always boggled my  
mind why people are so upset when two files have to be duplicated. One  
system that really does cheap branching well is git. Only a single  
file with a few characters is created for each branch (initially,  
changes are added of course). I’d love to hear from others who know  
more about this.

> There’s a lot of things to like about the _ideas_ of DDSCM, but in the  
> real world, I find that I’m rarely disconnected from the 'net long  
> enough to care about the fact that I’m using a centralised management  
> system.

True enough. I like some of the ideas because I am one of those people  
who has experienced significant offline development. Maybe it  
conditioned me to where I am now.

> So no, not a troll. Well informed using shorthands that should have  
> been pretty easy to determine if you weren’t blinkered by the  
> proponents of DDSCM in the first place.

Yes. I know I lean far to the DDSCM side of things and I don’t intend  
to hide it. I think the quality of this reply made up for the  
originally open claims. Though, I would like to ask, out of all the  
problems you mention, none of them really give a benchmark that could  
be used to note if a DDSCM would be ready under your definitions, are  
there any specific things that could be fixed or done to make your  
trust in a DDSCM system more likely? Or is DDSCM, for some reason,  
mutually exclusive with what you get out of your current SCM usage?

Thanks,  
Brian.

---

<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 15, 2007, 3:29am UTC](https://www.ruby-forum.com/t/why-svn/88576/40 "2007-03-15T03:29:57Z")

</div>

On 3/14/07, Brian M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> guess, though there is no denying that this number is larger than it  
> should be). I think I will agree that the wide spread use is  
> important, but I don’t think adoption is the only metric to look at.

It’s an important metric for the measure of the quality of the tool.  
With more installations, it’s significantly more likely bugs will be  
reported and (hopefully) fixed.

> No argument here. There are a lot of projects that thrive off of easy  
> entry. I think Ruby on Rails is an excellent example that many in this  
> community have been influenced by. I hear more and more people taking  
> up Subversion because of how pleasantly it works with the rails  
> development environment.

I use Subversion primarily with RubyForge. I use Perforce at work. I  
haven’t yet decided what I’ll do for stuff that isn’t for RubyForge or  
work; it’s sort of sitting in limbo at the moment. (The decision will  
_really_ come when I change my home server.)

> Professionally, I use subversion, though my team is looking to migrate  
> to something that does a better job at branch management and merging.  
> The verdict hasn’t been given yet, but it will likely also be  
> distributed. Your review (and the reviews of others in this community)  
> might make an impact. I will likely give Perforce another shot (though  
> I know the team I work with is much more likely to want something open  
> source).

Be warned: Perforce is NOT cheap. However, we had what seemed to be an  
issue a few weeks back and they responded within four hours by email and  
kept the case open for two weeks following up to make sure that we were  
okay. I have nothing but praise for Perforce at this point. There’s  
occasional merge issues, but for my money p4v is perhaps the best  
graphical interface for any SCM out there. If you’ve ever used  
TortoiseSVN, it’s got some nice features, but p4v gives me the ability  
to see the diffs between any two revisions of a file dynamically  
(“time-lapse” view), which I use extensively when merging extensive  
changes that even normal diff produces ugly files for.

That said, I still use the command-line tools extensively.

> I have to admit that none of the people I work with write their code  
> in a Windows environment. In fact, as a team, we officially don’t  
> support it. The only windows environments we have left are for testing  
> some of the web applications in Internet Explorer. This would probably  
> count as a bit of context I guess.

Fair enough. However, the lack of a graphical tool for visualizing some  
of the branching concepts is, IMO, significant.

> For cheap branches… I’m not sure either. It has always boggled my  
> mind why people are so upset when two files have to be duplicated. One  
> system that really does cheap branching well is git. Only a single  
> file with a few characters is created for each branch (initially,  
> changes are added of course). I’d love to hear from others who know  
> more about this.

My issue is more with centralised backup of changes. At work we back up  
a single machine and catch all of the committed changes. We’re not yet  
using cheap developer branches, but as we start using the absolute raw  
power behind Perforce, you better believe we will.

I also expect to be looking at p4proxy for use at home with the work  
server so that I can (hopefully) work disconnected without too much  
trouble. I have to see how well that works.

> Yes. I know I lean far to the DDSCM side of things and I don’t intend  
> to hide it. I think the quality of this reply made up for the  
> originally open claims. Though, I would like to ask, out of all the  
> problems you mention, none of them really give a benchmark that could  
> be used to note if a DDSCM would be ready under your definitions, are  
> there any specific things that could be fixed or done to make your  
> trust in a DDSCM system more likely? Or is DDSCM, for some reason,  
> mutually exclusive with what you get out of your current SCM usage?

It’s the auxiliary tools and the centralized source for knowing what’s  
going on with the source tree that matters to me. Patchset management is  
possible with Perforce, although I can’t tell you exactly how you’d do  
it – I haven’t tried.

Give me a way to work with Perforce without constantly being connected  
and I’ll absolutely use it. But a DDSCM has to give me tools –  
including GUI tools – at least as good as and preferably better than  
what Subversion gives me as well as an assurance that I will be able to  
back everything up, then I will consider it. It also has to deal with  
the reality that I develop on a lot of different platforms, including  
Windows.

-austin

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

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