views:

152

answers:

4

Hello,

I've been using SVN since a long time and now we're trying on Git. I'm not talking on the centralized / decentralized debate here. My only concern is speed.

The latter tool is much faster. But sometimes, I NEED to work with a centralized approach, which is much more simple and less complex than the decentralized one. The learning curve is really fast, which saves a lot of time (while digging into decentralized would lead to a waste of time, given the learning curve is much longer and we encounter more problem when working with it).

However, SVN is really slow compared to GIT, and I don't think it has anything to do with the centralized argument. Decentralized systems also have to deal with server connections and file transfert. So I can easilly imagine a faster implementation of centralized version control could exists.

Does someone has any clue on this?

+1  A: 

Git is very flexible and works just fine in a centralised arrangement. On a server somewhere, create a "bare" repository with something like:

mkdir repo
cd repo
git init --bare --shared

Then push your repository into the bare one on the server, and call that one the "central" repo.

Greg Hewgill
That doesn't solve the complexity problem. With SVN you can't do it wrong. People just need to know 3 commands : checkout (they just use it once), commit and update. It just works. The only thing you can get wrong is forget to update...Git is much more complex and the opportunity to mess up with something is just too high. There is no automatic synhronisation between the local and the remote. And if something can get wrong, it WILL.
Savageman
@Savageman: I hope I don't come off as terribly elitist here, but IMO if programmers aren't smart enough to use a system like Git without messing something up, then I question whether they are smart enough to be tinkering with software.
Dan Moulding
@Savageman - Incidentally, not all DSCMs have as steep a learning curve as git; it's a bit unique in terms of just how much of its internals need to be understood just to read the command documentation. Not to say that there aren't advantages to this approach -- but it is a bit of a turnoff at first.
Charles Duffy
@Dan: this is NOT for programmers. That's why I'm looking for an easy tool. SVN does a really great job and works well; it's just I think it could be faster, as some alternatives (which don't fit my needs) are faster.
Savageman
A: 

Git supports many topologies, including the centralised CVS/SVN approach. There are several options:

  1. Provide a central shared repository via ssh. gitosis makes this easier.
  2. Use github private accounts.
  3. Use github's commercial server product, github:fi in your own data center.
Marcelo Cantos
Well, I guess I shouldn't have given the Git example.Imagine you need to explain how to use this kind of tool to people who only know Microsoft Word and how-to google search.
Savageman
@Savageman, Marcelo - since we're going off the topic of faster centralized revision control (for which Perforce is indeed the widely accepted tool), I think bzr is a better option than git in making this kind of argument, at least for folks looking for a newbie-friendly user experience -- it can be used in exactly the same way as svn (checkout/update/commit) *or* in a fully distributed mode (clone/push/pull/etc). Git *can* be used with any workflow, but it certainly does feel a bit opinionated regarding which one it's built for, and doesn't provide the workflow-specific alternate commands.
Charles Duffy
Regarding what you said, I think bzr can be a good solution here. The question is: is it really faster than SVN? Bzr has to reputation to be one of the slowest DCVS out here (git, hg).
Savageman
+4  A: 

The one CVCS (Centralized Version Control System) I know being much faster than SVN is not a freeware one:

Perforce

I detail Perforce in this SO answer.

alt text

You can see a comparison between Perforce and Subversion in this document.
Its merge support in particular is much more effective.

VonC
Entirely agreed that p4 is much faster. As a downside, however, I find its ease-of-use sorely lacking; at work, we have developers using git-p4 as a pain-reduction issue.
Charles Duffy
Well, that won't make me use it (it's commercial :p), but that really confirms my curiosity and was exactly the kind of answer I was waiting for. I didn't know this tool, thanks.It looks platforms-complient (Win/Max/Linux) and integrates within the explorer of each of these OS. Really interesting! :)
Savageman
+1  A: 

What makes SVN slow is how it handles the working copies. Thousands of files are touched and written.

You could try Bazaar (bzr) as it supports workflows (but I don't know if it is really faster) or wait for SVN 1.7 with WC-NG and centralized meta-data. SVN 1.7 is planned for this summer, but could also be finished later.

Hardcoded