LWN.net Logo

Quotes of the week

If you think about it GIT actually promotes anti-social software development; development in small, disconnected silos is not how software is developed in the real world. Most software is developed by teams whose members have a variety of skills who need to see what each other is doing and that's the fundamental reason why GIT is not a threat to Subversion in the enterprise. It's fine for the development of the Linux kernel but that model doesn't work for most companies.
-- David Richards

We clearly want machines that perform human-like tasks. We want computers that recognize our language and motivations and can take hints, rather than requiring instructions enumerated in mind-numbingly tedious detail. But whether we want them to be conscious and volitional is another question entirely. I don't want my self-driving car to argue with me about where we want to go today. I don't want my robot housekeeper to spend all its time in front of the TV watching contact sports or music videos. And I certainly don't want to be sued for maintenance by an abandoned software development project.
-- Charlie Stross
(Log in to post comments)

Subversion antisocial

Posted Jun 23, 2011 13:59 UTC (Thu) by scripter (subscriber, #2654) [Link]

Note that David Richards is selling a product based on Subversion. Many of the comments in reply to Richard's article are worthwhile.

I noticed that Richards was bashing git, not Mercurial. My perception is that Subversion and Mercurial have been more approachable by less sophisticated users as compared to git.

Large organizations tend to use Windows heavily, and Windows users tend to want great UI integration, particularly in Explorer. TortoiseSVN and TortoiseHg fill this role well. Has TortoiseGit caught up yet? (I haven't been keeping track)

Once I had to work with a painfully slow remote svn repository. git-svn solved the problem very nicely.

Subversion antisocial

Posted Jun 23, 2011 14:25 UTC (Thu) by felixfix (subscriber, #242) [Link]

We use Subversion where I work and I have to suppress memories to not weep at the boss's attitude towards any distributed VCS. Subversion is a better CVS, but it is still CVS. I remember well the first time I used a distributed VCS (darcs) -- it was like a breath of fresh air. I have only used git a bit, playing around with it, but I would gladly trade it for Subversion. What's really weird is that I have talked several times with the big boss about VCSs, and I am convinced that all the problems he sees would be solved by moving to git, yet he wants something even more stifling than Subversion.

Subversion antisocial

Posted Jun 23, 2011 15:00 UTC (Thu) by sce (subscriber, #65433) [Link]

I remember talking to my non-technical friend about how cool the distributed version control system we were using at work was (git). I never thought such a relatively unimportant tool could harness such power (he probably thinks I'm crazy).

A great way to learn git is to use it as an "overlay" on top of e.g. subversion. Simply version control the project with git in addition to subversion. The single .git directory is easy to ignore in subversion, and ignoring .svn directories is easy to do in git.

You can play around with branches, bisect, and maybe even take interactive rebase for a spin, and at the end of the day it's trivial to transfer those commits to the authoritative version control system (e.g. a small shell script should do).

Subversion antisocial

Posted Jun 23, 2011 19:20 UTC (Thu) by jldugger (subscriber, #57576) [Link]

Some of our more ambitious developers have taken to git-svn to bridge the two. But we're only piloting a new workflow that doesn't use CVS =(

Subversion antisocial

Posted Jun 28, 2011 20:48 UTC (Tue) by dgm (subscriber, #49227) [Link]

Indeed. If Subversion is a better CVS, then git is the ultimate Subversion client. I have been using it that way for something like a year, and absolutely love it.
It has saved my ass innumerable times, being able to track every little change independently instead of just making a big dump to the server from time to time. And begin able to clone my almost-done code on the server to test if it still worked fine on the Windows clients before finally pushing it to the central repository is a godsend.

Subversion antisocial

Posted Jun 23, 2011 15:52 UTC (Thu) by vonbrand (subscriber, #4458) [Link]

AFAICS (as a non-SVN user), git-svn works quite well. You get to have git's advantages locally (at least most of them), the central SVN fans just won't notice. "Version Control with Git" by Jon Loeliger (O'Reilly) gives hints on dos and don'ts when interacting with upstream SVN.

Subversion antisocial

Posted Jun 23, 2011 17:17 UTC (Thu) by mjw (subscriber, #16740) [Link]

I use git-svn when hacking on GCC (which is still hosted on svn) and you really don't need to touch svn anymore. After some initial setup you can just work as if you had a local GCC git tree and after approval of some commit you can just git svn dcommit your changes. It works really nicely.

http://gcc.gnu.org/wiki/GitMirror#Commit_upstream_.28git-...

Subversion antisocial

Posted Jun 27, 2011 19:36 UTC (Mon) by marcH (subscriber, #57642) [Link]

> Subversion is a better CVS

Except for the lack of tags and branches (they think there is no difference with directories)

Subversion antisocial

Posted Jun 27, 2011 20:16 UTC (Mon) by dark (subscriber, #8483) [Link]

svn's lack of branches is still better than CVS's branches :)

Subversion antisocial

Posted Jul 13, 2011 20:18 UTC (Wed) by oak (guest, #2786) [Link]

But rsync + CVS is better than SVN, as you can then have the whole repository locally, like with DVCSes.

Subversion antisocial

Posted Jun 23, 2011 17:48 UTC (Thu) by clicea (subscriber, #75492) [Link]

Thanks for pointing that out, it has to be the only reason he can say that Subversion is better than Git.
Ever since I switched to Git I haven't looked back to subversion, it's just a better workflow. In fact, I think I can collaborate more now than before since everything is way easier to do and to correct if it's needed.

Subversion antisocial

Posted Jun 23, 2011 21:25 UTC (Thu) by s_hoop (subscriber, #49503) [Link]

Yes, this is simply FUD; while I agree that there is probably a lot more > 10,000 users enterprise installations of Subversion, this is purely because it takes enterprises of that size way longer to implement a new, /worthwhile/, technology.

I think it is pretty clear by now that it is totally possible to set up Git in a way that it is pretty much equivalent to Subversion; all the rest that mr. Richards calls "anti-social behaviour" is simply a workflow issue. If you really want to centralize all commits, simply make your engineers push all the time -- but I'd argue that people become more productive when they know they can safely try out risky stuff in private.

Subversion antisocial

Posted Jun 23, 2011 21:33 UTC (Thu) by s_hoop (subscriber, #49503) [Link]

Sorry for replying to my own comment but I cannot edit it [a feature?]

Anyway, I knew I had heard this name before:

http://blog.red-bean.com/sussman/?p=475

I know that mr. Richards later issued a clarification [1], but I do consider this some sort of 'repeat offense'....

(yes, I realize that the target audiences are different, but it is still ill-advised to polarize whichever audience you are targeting today)

[1] http://blogs.wandisco.com/2011/01/04/110/

Subversion antisocial

Posted Jun 24, 2011 12:56 UTC (Fri) by BenHutchings (subscriber, #37955) [Link]

Yes, the really anti-social thing is pushing your changes too early and breaking the program for others - which is encouraged by any system without cheap branches.

If you are rigorous about test-driven development, you can probably get away with a central repository as the risk of breakage should become much smaller. But I don't believe more than a tiny fraction of this guy's customers will be doing that.

Subversion antisocial

Posted Jun 27, 2011 15:14 UTC (Mon) by nye (guest, #51576) [Link]

"Large organizations tend to use Windows heavily, and Windows users tend to want great UI integration, particularly in Explorer. TortoiseSVN and TortoiseHg fill this role well."

This is something I find endlessly fascinating.

I've tried using TortoiseSVN and found it to be essentially unusable versus the very simple command-line interface. I couldn't figure out how to do anything with it simply; everything seemed to be more complicated and difficult.

And yet other people look at the same software and make *exactly the opposite* comparison. I think this serves as a lesson in designing interfaces, but I'm not entirely certain what that lesson is.

(Something about not trying to be all things to all people, and recognising that one piece of software cannot serve everyone at once, no doubt.)

Subversion antisocial

Posted Jun 27, 2011 18:49 UTC (Mon) by jzbiciak (✭ supporter ✭, #5246) [Link]

I've noticed the same thing. I can't get around in the TortoiseSVN GUI at all, but I have friends that swear by it as compared to the command line. These same friends spend far more time in GUIs in general than I do, though, so that could be a big part of it.

It's probably like the difference between VI and EMACS. Once you've got the muscle memory for one, it's very easy to be very, very efficient in that environment, and completely lost in the other. Neither one is necessarily easier or harder than the other, but both are rather different from each other.

A piano player and a sax player both are musicians and understand sheet music, and both can be very good at what they play. They may even play the same songs in the same band (albeit different parts). If you tell them to trade instruments, though, I doubt the sax player will be able to play a piano very well at first, and I doubt the piano player will get much more than squeaks out of the sax without a fair bit of practice up front.

Distributed VCS is Invaluable

Posted Jun 23, 2011 22:07 UTC (Thu) by daglwn (subscriber, #65432) [Link]

A lot has been said already but where I work, there is some need to operate in a distributed manner, either because mostly-independent groups share code among each other or because we're sharing code with some upstream open source project. A system like git is so much superior to any centralized model that it's not even close. Companies with needs like these will migrate away from Subversion.

Quotes of the week

Posted Jun 27, 2011 19:58 UTC (Mon) by marcH (subscriber, #57642) [Link]

> who need to see what each other is doing and that's the fundamental reason why GIT is not a threat to Subversion in the enterprise

There is a lot of truth in that. In some workplaces your boss(es) does NOT want you to properly stage you work and does NOT want you to show off with clean, nice, bugless and easy to read commits. Instead, your control freak boss wants to be constantly able to watch over your shoulder and see every mistake you make and every dead end you backtrack from. Even when that means pissing off your colleagues with your temporary work.

Of course he never has the time to watch you that much in practice, which means you can easily fool him with git-svn (Remind me to make a donation to the saint who wrote git-svn)

Welcome to "enterprise" software.

Copyright © 2011, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds