Spolsky: It's like you're standing in my ear. Let's tell our listeners what this show is all about. today we have a special guest/host, see it's not like a guest, it's like a guest/host. And our guest/host today is Eric Sink of Sourcegear
Atwood: That's right. And you know, what I have directly in front of me, which is awesome is I have this book "Eric Sink on the busines of software"
Spolsky: Oh, yeah, yeah, Jeff you should read that.
Atwood: And it has, it is signed, which is nice, very nice, thank you Eric, and it also has a foreword by this guy Jewel Spolllssskyyy, I don't know who that is, some guy wrote a foreword, but it's a good book, and you know what? It's funny as I actually read this book, actually cover to cover recently, occasinally, when I go on trips I take books like this with me and
Atwood: ... If you assume -- and this is a big assumption -- that most developers have kinda sorta mastered fundamental source control -- which I find not to be true, frankly...
Spolsky: No. Most of them, even if they have, it's the check-in, check-out that they understand, but branching and merging -- that confuses the heck out of them.
Atwood: Right. Did we lose Eric?
Sink: I muted for a second just to try something. Go ahead.
Atwood: Okay. So, with that in mind, do you feel like... these new source control systems... The big hook -- and this is what you brought up, Joel -- is that they theoretically make branching and merging much easier, which, if true, is a big deal, because that is by far one of the most complicated things to master in Subversion or...
Spolsky: To me, the fact that they make branching and merging easier just means that your coworkers are more likely to branch and merge, and you're more likely to be confused.
Sink: That's very true.
Atwood: True, but... I don't know. Eric, I'd like to hear your opinion on this.
Sink: Well, Joel asked me to select some questions, and all the questions I was looking at on Stack Overflow were about DVCS, Git, Subversion, and why they're better. We can go and dive into that now, but it's something I think about a lot.
Atwood: Let's do it. I would love to hear about it.
Sink: Okay. The thing about DVCS... the first thing I usually want to say is...
Spolsky: DVCS is Distributed...
Sink: Distributed Version Control System -- or Decentralized sometimes.
Spolsky: So that's what Mercurial and Git are -- the first generation...
Sink: That's right. Although I guess Larry McVoy of BitKeeper would probably want us to say that his was the first generation, which is probably pretty close to true, because he's had this basic technology shipping for years and years, but of course his system costs a ton. The thing is, it's really intriguing, but all of the evangelism about it is really awful. People ask, "Why should I use DVCS?" and the usual answer is, "Go see Linus's video on YouTube," and the second answer is, "I can code on an airplane." The problem is, first of all, we hardly ever code on airplanes, and Linus's video is so rabidly pro-DVCS and really inflammatory... He's done more damage to DVCS's going mainstream than anyone else.
Sink: Oh yeah. If you look at his video, he basically says, if you're a Subversion user, you're an idiot.
Spolsky: So that makes people want to be Subversion users, because they want to be idiots... No!
Sink: I don't know what it makes people want to do, but it doesn't make people want to use Git...