CVS / SVN / GIT Choices Choices

Hi Guys,

After working with SVN for a few years i decided to look at alternatives to enable more international collaboration of the projects which i am working on.

As part of the systems i reviewed for my requirements as to what i need, and why i needed it.

During this process i looked at CVS, SVN and GIT, each system has its own pro’s and con’s which could either cause the entire project to fall down around my ears or provide a stable base for us to build a world class project on top of.

CVS – Concurrent Versions System

While i was looking at this system, the CVS system is very stable, mature and effective. This system also ran the versioning of the Linux kernel project for many years. Unfortunately there are a few snags with using this system.

1, The CVS system is now classed as legacy.
2, The development of this system has been halted since 2008 and has since been superseded by SVN.

My Conclusion: CVS while it is very stable, It is no longer supported as a version control system and also has the singular major fall back that if the server that it’s on goes down, you lose the data and your repository information which you would have to manually re-build.

SVN – Subversion

As i have used this system it comes second nature as a viable alternative to what i needed.  It is fast, scalable well supported and easy to use.

Looking at its pro’s and con’s unfortunately they appear to be close to the same as the CVS System, the only difference is that SVN is very much alive, supported and has a very active development community.

My Conclusion: While there is still a single point of failure, the development of the system is still in an active state and doesn’t look like it is going to stagnate any time soon. Provided you had a good backup solution in place there is no reason not to use SVN in any size organisation small or large.

GIT – the fast version control system

I have taken a long hard look at this system as all reviews and reports say there is a little learning curve when using GIT in a development environment.

The way this version control system works is that it allows for distributed developers, this is one of the reasons the kernel project has officially adopted GIT as there version system.

Each individual developer has a local copy of the whole repository. This allows for the developer to work offline or in a distributed environment (distance workers/international collaboration) and when the development is at a stage where the developer believes that either the new features can be added to the master tree or a patch can be created to fix/repair a function that is currently broken, the developer can easily push the changes up to the git master server. Also due to GIT being a distributed version control environment you can control the build of a project down to individual departments and have each department working on their own part of the project, to be bought together in the master repository at a later point in time.

My Conclusion: The GIT system fits all my requirements and is very stable; it works effectively and allows for multiple developers across a wider area. GIT allows for setups as simple as few users, to thousands of users. Setup can also be simplified by using 3rd party systems like “Gitosis” which allows for multiple contributors through a single user.

I will be working on an Installation Guide for GIT in the near future, Look out for it on a blog post near you!

Tags: , , , ,

1 Response to "CVS / SVN / GIT Choices Choices"

Leave a Comment

You must be logged in to post a comment.