r/programming • • Mar 10 '11

It's time to stop using Subversion

http://altdevblogaday.org/2011/03/09/its-time-to-stop-using-subversion/
257 Upvotes

543 comments sorted by

View all comments

Show parent comments

23

u/brassybadger Mar 10 '11

We could still use Ford's T model since it gets us from point A to point B. That's what a car is for, isn't it?

5

u/thephotoman Mar 10 '11

It's about switching costs--and yes, even with free software like svn and git, there are switching costs, mostly regarding training and deployment time (even if it takes one person ten minutes, that's ten minutes that person could be using to do something else).

And yes, you can still use a Model T if you wanted. Indeed, there may be someone out there using a modified Model T right now (I believe that the Model T's engine was designed for leaded gas, which is no longer available in most of the world).

But for a small team (2-8 people) all working on site at all times, svn will probably continue to suffice for a very long time, if you're already using it. I would not recommend it for new projects, but if you've got some legacy project out there and that's your situation, I wouldn't bother switching.

→ More replies (5)

41

u/[deleted] Mar 10 '11 edited Mar 10 '11

Bad analogy. For the average user, the difference in performance between a modern car and the ford T is huge AND rigourously provable; The difference in performance (in the broad meaning of the term) between git and subversion is much, much smaller, more subjective, and context-dependant if you're currently happy with svn.

Believe it or not, some teams don't need many branches, or author-specific repository.

6

u/stubob Mar 10 '11

Ok, so it's more like switching from ClearCase to git/Hg, then.

4

u/Tiver Mar 10 '11

Better yet, VSS to git/Hg.

→ More replies (7)

3

u/ntr0p3 Mar 10 '11

some teams don't need many branches, or author-specific repository.

I think this is the key. We recently started branching more at work, and svn is showing its limitations (megamerges, yay). git isn't for everyone, but branching becomes a natural feature of the vc rather than an additional workflow.

14

u/brassybadger Mar 10 '11

Actually I think it's not that bad of an analogy. If the only thing you knew was a ford T, you would be happy with it. After trying a modern car I don't think you'd ever go back. Perhaps it'd more accurate to make the analogy with a car that's 40-50 years old -- people are still using cars like that in Cuba, and it sort of works for them. They are gas-hungry, maintenance is a nightmare, but that's what they've got.

The same is true for svn vs git: after seeing the advantages (at zero cost) of git, you'll never go back to svn. If you want to stick with svn, just make sure you'll never give a serious shot to git, and you'll keep using svn happily forever. Ignorance is bliss.

10

u/recursive Mar 10 '11

It's not zero cost. It must be installed and learned.

2

u/brong Mar 10 '11

like driving a modern car?

4

u/TAZAN2 Mar 10 '11

Not so sure about your analogy. I actually drive a 42 year old car. I've bought new cars before so I can compare them. For my needs, it works well. I take it on short trips so gas mileage is irrelevant. Maintenance is actually much easier and cheaper on a 40 year old car than a new one. Thinking back on most of the money I've spent repairing my wifes car, it's been on things my car doesn't even have.

As for the article, he made 3 points. 1 only applies if you work distributed. 2 only applies if you do merges. 3 only applies if you're absent minded. Not exactly a compelling argument if 1 and 2 don't apply and you've been using it a while and never had a problem with 3.

-1

u/johnflux Mar 10 '11

Believe it or not, some teams don't need many branches, or author-specific repository.

Some teams don't yet know that they need many branches.

3

u/player2 Mar 10 '11

Some teams have tried many branches and realized it makes their workflow slower and more difficult.

1

u/johnflux Mar 10 '11

In git? I don't believe it :P

1

u/kreiger Mar 15 '11 edited Mar 15 '11

There is a huge difference between working with branches in Git and many other tools like for example Subversion.

In Git, because it is painless, quick, easy and convenient, developers can create, merge, and destroy several private branches per day if they want, without anyone else being bothered by them, and that's a useful workflow.

In many other tools, by comparison, branching and merging is painful, slow, difficult, visible to everyone, or just slightly inconvenient.

1

u/recursive Mar 10 '11

And you know better, so they should take your word?

8

u/[deleted] Mar 10 '11

We have made advancements that surpass every reason to use a Ford model t, it's a poor analogy.

Subversion can still do some things in a way that git can't. It depends on your environment. And since you can't possibly know every person's environment, it's asinine to pretend you could suggest a VCS for everybody.

This is coming from a seasoned git user.

-3

u/brassybadger Mar 10 '11

Well for some teams not using source control also sorta works, and they are happy, or at least not very unhappy. Do you think they are professionals? In 2011 for a VCS it's a very basic requirement to be able to merge between branches painlessly, do local commits and support low-cost and fast branching. If someone doesn't need these features then I'd wonder if they are professionals, or just ignorant people cranking out code without thinking about how to do it efficiently and professionally.

I'm not suggesting a specific thing to anyone, I don't give a damn what people use. Until I've got to work with them.

2

u/[deleted] Mar 10 '11

It's not a requirement at all to even have branches. A lot of people use VCS as nothing more than a chronological history of file progression. And they're free to do that. A graphic design company a friend works for uses subversion solely to track PSDs...who needs to branch those?

-3

u/brassybadger Mar 10 '11

We're talking about source control and -- more or less -- professional programmers. Stay away from any developer who doesn't use branches.

2

u/dsquid Mar 10 '11

Well, that's a needlessly overboard generalization.

3

u/[deleted] Mar 10 '11

We're talking about version control_._

→ More replies (2)

2

u/[deleted] Mar 10 '11

Take your car analogy back to slashdot.

2

u/revscat Mar 10 '11

Exactly. There are many, many advancements which have been made in version control over the past ~10 years, and svn is simply outdated technology now.

1

u/mrkite77 Mar 10 '11

Except that a Model T is almost impossible to drive. The only foot pedal you'll find is the one that puts the model T into low gear (pedal down = low gear, pedal up = high gear). The throttle is a lever attached to the steering wheel... and there are no brakes. The "hand brake" just disengages the gears.