Discussion SVN alternatives


I currently use SVN for my own projects, however it becomes more and more problematic and i want to get opinion on alternative Revision Control Systems.

→ The svn contains around 11GB for the latest revision, this si because all artist materials like textures and similar are in there too (and I don’t want to store them seperate, because revision controll for them is actually quite usefull so far)

→ It mostly works, however merging and branching are quite serious problematic as I get the feeling that svn was simply not designed for this kind of load. Also the merging is a quite painfull process and often creates different funny kinds of problems, if packages are renamed for example.

→ SVN mindfuck from time to time in SVN somewhat unexplainable errors occure taht are all solveable with a bit of fiddeling around with it, but it wastes time that could be spend in development.

Now the alternatives I know of are Mercurial and Git,

Does anyone here have expirience with any of those and can provide some tips and expiriences?

→ Additionally a working elcipse pluding would be nice, however it is not a must have it’s more on a optional basis.

Are there other great Revision Controll systems that i should put into consideration? (It is not important if the system is central or decentral as long as it is possible to setup a main repository for all developers on a root server where the latest working version is aviable)

Thanks in advance for any answers.

I’ve been using git for about a year now and absolutely love it. In the first case, its just faster than Subversion. There are two Eclipse plugins available for it, EGit and JGit… EGit is the one everyone seems to use and it does the job quite well and works in the same manner as you’re likely used to with the SVN team provider for Eclipse.

The thing I’ve really come to appreciate most is the de-centralized nature of the whole thing where I can push commits on specific branches to specific people or servers. Its kind of a different way of working but once you’re thinking in that mentality its hard to go back to second generation version control.

Mercurial I only have experience with cloning a repository to get some code off BitBucket but I’ve heard similarly good experiences from people who have gotten into it. It seems to be more straightforward than git, which is really written as a command-line suite.

I’ve used mercurial a lot and git somewhat. On the surface they are pretty similar. Unless you really need to know the intricate details it really doesn’t matter which one you pick (both have a bit of learning curve and some set-up). They have almost the same feature set, came about at almost the same time, and both are used in a lot of projects big and small. The mercurial plug-in in eclipse is nice. In NetBeans mercurial is of the shelf.

So pick whatever, you’ll like either of them better than SVN, specially the de-centralized nature.

I would recommend Git all the way. It is fast and quite easy to get used to. You can use it almost like you work with SVN or use it in more interresting and powerfull ways.

There are some problems with IDE support with git. I haven’t found any nice plugin to JMP/Netbeans yet… (not tried)

I prefer to use the command line tools instead so I know exactly what I’m doing :slight_smile:

I’m using Git for over a year now and i’m absolutely loving it. The EGIT plugin for eclipse is really great (except for some nasty problems with ssh keys under linux).

Also, if you use GIT and chose to use GitHub, you can easily use the Issue system of GitHub as mylyn repository in eclipse.

another great thing about github are pull requests. If your repo is public, other might fork your repo and send pull requests, which you can accept or deny. You can even use pull requests in private repositories. you can have pull requests from one branch to the other and this way merge only specific commits from one branch into the other branch. For Open Source, i would ever use GitHub. GitHub also offers a free micro-plan for students, which includes five private repos.

I don’t think the learning curve for git is higher then for SVN, at least not for the basics (push, pull, commit, merge, checkout, clone etc.). However, GIt is quite powerfull and there are some things that are not so easy.

Thanks for all the answers, I think i will go with mercurial then for the start. (Mostly due to it having TortoiseHG)

The rest seems kinda equal.

Any kind of cloud hosting is not what i prefer, sine I host a own server anyway one service more wont really hurt.

I think I read that netbeans has a GIT interface built in starting with 7.1. Is there any plan to upgrade the platform to this version of netbeans? We are currently using SVN and are looking to change to either mercurial or git.

@iwgeric said:
I think I read that netbeans has a GIT interface built in starting with 7.1. Is there any plan to upgrade the platform to this version of netbeans? We are currently using SVN and are looking to change to either mercurial or git.

Yes,. It comes with 7.1 but you can install it from the official NetBeans update center in earlier versions (like 7.0, which the SDK is currently based on)

@sbook Thanks. I think we’re going to switch to GIT to see how it goes. We’ve been having some issues with Branching and Merging with SVN.