?

Log in

 
 
12 December 2005 @ 10:32 am
On distributed revision control systems  
Christian, you're so right. If you want to contribute to 3 projects, you now need 3 revision control tools. I pledge developers to use centralized tools like subversion. Even more: just use subversion, and if you feel it's missing features, please contribute them. By standardizing on subversion, we lower the barrier for people wanting to contribute, instead of increasing it by asking them to install and understand new tools. Development with so-called distributed revision control systems is just like these RCS themselves : a complete mess.
 
 
 
fooishbar on December 12th, 2005 10:38 am (UTC)
Your choice of Subversion is purely arbitrary.

s/Subversion/GNU Arch/ if you like and your argument still holds, and then it's centralised revision control tools that are fragmenting things and making it a mess.

Your entire argument makes no sense at all.
np237 np237 on December 12th, 2005 10:42 am (UTC)
There is *one* modern, widely-used, centralized revision control system. And it's as if it was flawed, it's just good for what most developers need. What I'm saying is, if you want to get contributors, you should use this one, not ask potential contributors to learn a new tool that is more complicated for no real gain - except for saying it is cool because it is distributed.
(Anonymous) on December 12th, 2005 11:33 am (UTC)
A lot of people have not bothered to learn Subversion, because it is by its nature obsolete. If your project uses Subversion, it is one more barrier for me to participate – I will not bother to learn a system that is contributor-hostile by its very nature.

Now, I know CVS, and I can tolerate it. My preferred system is Darcs, because it is so simple (simpler than either CVS or Subversion). I might get around to learning Arch, if there was a project using it that I really wanted to contribute to, and the same goes to Git and Monotone.

With the exception of CVS, all the systems I listed as "I am willing to use it" are distributed. Now why is that? It's because distribution is contributor-friendly, unlike centralization which treats contributors as second-class citizens.

Antti-Juhani Kaijanaho (http://antti-juhani.kaijanaho.info/newblog/)
np237 np237 on December 12th, 2005 12:53 pm (UTC)
Contributors of projects hosted with a centralized tool are second-class citizens only in your mind. Or with projects that don't give read-write access easily - which has proved to be a stupid attitude. Still, I don't think having facilities to make local branches everywhere bring anything else than coolness for über-geeks. This is surely a beautiful idea, but it doesn't bring anything.

Furthermore, you quoted no less than four distributed control systems. Are you going to learn four different tools to contribute to projects you participate in? This is absolute madness.
fooishbar on December 12th, 2005 07:00 pm (UTC)
Furthermore, you quoted no less than four distributed control systems. Are you going to learn four different tools to contribute to projects you participate in? This is absolute madness.

I can quote four centralised control systems. Does that mean that centralised systems are inherently flawed because (go figure) there are lots of them?
np237 np237 on December 12th, 2005 03:32 pm (UTC)
By the way, I've just been told you can easily make branches of a subversion repository at home, using a nifty tool called svk. It's great to see some developers tried to improve existing tools instead of reinventing the wheel.
(Anonymous) on December 12th, 2005 06:06 pm (UTC)
You know what? SVK is a distributed revision control system! You seem to be contradicting yourself when you say "distributed version control is bad, but hey, look how cool the SVK add-on is!"
np237 np237 on December 12th, 2005 06:19 pm (UTC)
But SVK is compatible with subversion. I have nothing against tons of tools when they are compatible. Do you know what interoperability and compatibility mean ?
fooishbar on December 14th, 2005 10:36 am (UTC)
Is it interoperable and compatible with CVS?
fooishbar on December 12th, 2005 07:02 pm (UTC)
It's great to see some developers tried to improve existing tools instead of reinventing the wheel.

If that's the case, why did Subversion developers reinvent the wheel, and not make a tool that's compatible with CVS/RCS?

You do realise that most of the distributed revision control systems are not in any sense new, and most have lineage dating back to the very, very early days of Subversion, and some even earlier, right?
(Anonymous) on March 24th, 2006 03:58 pm (UTC)
considering the learning curve from cvs to svn is replace the command with svn, you're pretty ignorant.

being centralized doesn't mean it's contributor-hostile. ever heard of sending in patch diff files?

if i was running a project i would want one of my trusted lead developers to check every single change submitted by a contributor just to make sure some jackass isn't trying to put an exploit in.
fooishbar on December 12th, 2005 11:45 am (UTC)
Subversion has absolutely no users compared to CVS.

You demand that we all accept the admittedly large leap in usability that Subversion offers over CVS, yet flat-out refuse to accept that everyone accept the large leaps that distributed revision control offers?[0]

Your argument is this:
Subversion has more users than tla/baz/bzr/darcs/monotone/rosegarden/codeville/et al, so it must be much better.
Also, distributed revision control is shit.

Your first argument is quite neatly destroyed by a small tool you may have heard of called 'CVS', and your second one isn't backed up by any reasoning.

Daniel, who does not work on a revision control system, and whose only interaction with revision control is CVS for the projects he works on, and cp -al for longer-lived personal branches

[0]: Let's not get into how buggy the tla/baz codebase is here, that's pure semantics.
fooishbar on December 12th, 2005 11:47 am (UTC)
(That being said, the tools I have used for quite some time include RCS, CVS, Subversion, GNU Arch/Bazaar, Bazaar-NG, Darcs, Monotone.)
np237 np237 on December 12th, 2005 12:44 pm (UTC)
Subversion has more users than tla/baz/bzr/darcs/monotone/rosegarden/codeville/et al, so it must be much better.
I didn't say that. I'm saying it's better because it is centralized. Furthermore, it's being accepted as the new standard for centralized control system. As a subversion user, I think it's because it's a good tool.

Also, distributed revision control is shit.
Exactly.

Joss, who doesn't want to participate in a project for which hundreds of unrelated branches lie and get lost in the wild.
Jeff Bailey jbailey on December 12th, 2005 01:41 pm (UTC)
Statistics
I invite you to back up the statement "is being accepted as" with statistics.

Aside from a couple high-profile projects like gcc, I don't see a general trend of people moving to svn.

If nothing else, I see them sticking with CVS because everything else requires non-zero work to change with almost no gain.
(Anonymous) on December 12th, 2005 06:08 pm (UTC)
I'm saying it's better because it is centralized.

I haven't yet heard a single argument for this from you. Just this assertion.

Why is centralized better?

(Oh yeah, lots of people are saying "centralized is worse". So am I.)
np237 np237 on December 12th, 2005 06:21 pm (UTC)
What a constructive message.
fooishbar on December 12th, 2005 07:03 pm (UTC)
What a constructive message.

compare and contrast with:
Also, distributed revision control is shit.
Exactly.

So, to get to this poster's point: why is centralised revision control the only possible model?
fooishbar on December 12th, 2005 06:59 pm (UTC)
Furthermore, it's being accepted as the new standard for centralized control system.

No, that's utter nonsense. Compare the userbases of Subversion and, oh, CVS.

Joss, who doesn't want to participate in a project for which hundreds of unrelated branches lie and get lost in the wild.

The great irony of this is that that's what centralised revision control systems do. If branches get lost, they get lost -- such as the three cp -al'ed trees of the full X tree that are sitting on my laptop right now, for instance -- but they are revision controlled, able to be merged. Getting lost to a centralised system makes things much harder, because the branch has never had internal revision control.
piman on December 13th, 2005 08:46 pm (UTC)
For a very real example of a project that died because it went to decentralized revisions and lost a hundred forks in the wild, look at Rhythmbox. Its primary repository was Arch. When Colin disappeared for a time, yes, everyone could still hack on it. But no one's repository was really compatible, and development has only picked up again now that it's back in CVS (shock horror, someone can do work with CVS?)

Distributed revision control is a useful tool, but no one's yet demonstrated how to use it sanely without keeping a centralized development process, negating most of its supposed benefits (really, all you keep is offline operation). History is important, but less important than a working program.
fooishbar on December 13th, 2005 11:18 pm (UTC)
Dude, that's a social issue that you're attempting to solve through technical means. If, when Colin disappeared, no-one stood up and said alright, my repository is now the primary repository, and asserted some form of leadership, if only in selection of branch, then Rhythmbox as a project has some serious social issues, and they would come to a head regardless of the type of revision control system used. One technical way to skirt around this is to use a centralised revision control system (either nominate one central branch which everyone can merge to as the branch, or use CVS/SVN/whatever), but eventually the lack of any visible leader will come to bite you on the butt.
(Anonymous) on December 13th, 2005 03:09 am (UTC)
joke
This is a joke right? You provide an extremely weak argument against "distributed" revision control (how exactly are they not distributed); having to rely on slanderous generalizations such as "shit" or "complete mess". Look at the all the popular projects that require distributed revision control to stay productive (Linux being the best example).

"who doesn't want to participate in a project for which hundreds of unrelated branches lie and get lost in the wild."
The fact that there are other branches allow different major features to be developed independently of each other; any well run project will still have a HEAD repository where everything is eventually merged into.

The argument regarding how centralized revision control is widely used is fallacious. This stiffles innovation in an industry that sorely needs it.

I'd like to know about all these presumed experience you have with distributed revision control
(Anonymous) on December 12th, 2005 05:02 pm (UTC)
Distributed RCS lower the barrier to contribute
Well, I'm occasionaly contributing to several projects and I have to say that distributed RCS (especially darcs) lower the entry barrier.

With subversion I have to ask for commit provileges, which ususaly involves creating some sort of account (which i must then remember along with a new password). If you are not heavy contributor, the project leader might be even reluctant to give you the write access.

On the other hand, with distributed system I can simply work on my local repository and the mirror the branch somewhere and say "pull this". Oh, did I mention offline hacking?

I agree that GNU Arch has horrible interface (as in hard to remember), but Arch is dead anyway. Its succesor Bazaar-ng much more resembles darcs (both in concepts and UI), which is simplicity in its pure form.

(Anonymous) on December 12th, 2005 05:24 pm (UTC)
Re: Distributed RCS lower the barrier to contribute
Amen.

This is why I am using darcs for projects for which I intend to remain the primary developer (or for which I plan to do no further development).

I think if other people want or need check-in privileges, though, I may switch to svn because it's so similar to CVS (less broken, but similar commands).

--titus