Top 4 Free Version Control Systems
Revision control, or Version Control, is the management of changes to files, computer programs, and other projects. Each revision is associated with a timestamp and the person making the change. Revisions can be compared, restored, and with some types of files, merged. Version Control software provides a database that is used to keep track of the revisions made to files by all developers involved in the project.
This post reviews the top open source Version Control Systems and the tools that make them easy to set them up and use them.
Why You Need Version Control
Basically, Version control is tracking the history of your files. It is an excellent way to solve the problem of sharing files between developers. Here are few reasons for the importance of version control systems:
- Undo: Meaning you can restore files to previous versions.
- Synchronization: Meaning that everyone in your project stay up to date with the latest version.
- Tracking: It keeps track of all changes made to a file: what has been changed and who made the changes.
- Branching and Merging: If you create experimental changes, you can branch the project so it will not affect the main version. And when you are done, you can merge back your changes with the main project.
Types of Version Control
There are two types of Version Control Systems: Centralized or Distributed Systems.
- In Centralized systems, there is a central server, where you check in/out from there. Traditional revision control systems, like Subversion, use a centralized model where all the revision control functions take place on a shared server. If two developers try to change the same file at the same time, without some method of managing access, the developers may end up overwriting each others work. Centralized revision control systems solve this problem either by file locking or version merging.
- The other type is a Distributed Revision Control System or Decentralized Version Control System (DVCS): It keeps track of software revisions and allows developers to work on a given project without necessarily being connected to a common network. The nice thing about it is that there is no central server. There are 3 major players in the Distributed Revision Control System: Git, Mercurial and Bazaar.
Here are the 4 top open-source Version Control Systems that you can depend on. All of them are either totally free or free with restrictions.
1. Git
Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
GitHub – Online :: Free for Open Source Projects
Github is a Web based hosting service for projects that use the Git revision control system. This is the best way to collaborate with others online, fork, send pull requests and manage all your public and private git repositories. The service is Free for open source, and paid for other private repositories.
GitHub – Windows Client
GitHub for Windows: Develop on Windows, share on GitHub. GitHub for Windows is a 100% native application that will run on Windows XP, Vista, 7 and even the pre-release Windows 8. It is “The easiest way to use Git on Windows. Period.” GitHub for Windows is a free download and although it is not required, it works best with a GitHub.com account.
GitHub – Mac Client
Github for Mac: Develop on Mac, share on GitHub. Client for Git on Mac computers. The easiest way to share your code with GitHub from a mac computer. GitHub for Mac is a free download and free to use.
2. Mercurial
Mercurial: Work easier. Work faster. Mercurial is a free, Distributed Source Control management tool. It efficiently handles projects of any size and offers an easy interface. It is fast and powerful and easy to learn. Mercurial is a cross-platform, distributed revision control tool for software developers. It is mainly implemented using the Python programming language.
Bitbucket – Online :: 5 users Free Plan
Bitbucket is the hosting Website for Git and Mercurial. It offers Free Unlimited DVCS Code Hosting. You can store all of your Git and Mercurial source code in one place with unlimited private repositories. Includes issue tracking, wiki, and pull requests.
TortoiseHg – Windows Client
TortoiseHg is a Windows shell extension and a series of applications for the Mercurial DVCS similar to the Tortoise clients for Subversion and CVS. It also includes a Gnome/Nautilus extension and a CLI wrapper application so the TortoiseHg tools can be used on non-Windows platforms.
3. Bazaar
Bazaar is another Distributed Version Control System, like Mercurial and Git. Bazaar helps you track project history over time and to collaborate easily with others. Whether you are a single developer or a community of developers scattered across the world, Bazaar scales and adapts to meet your needs.
Launchpad – Online :: Free for Open Source Projects
Launchpad is the hosting Website for Bazaar. It is a Free open source project hosting. Repository based on the Bazaar VCS. Launchpad can host your project source code using the Bazaar version control system. Launchpad also import over 2000 CVS, SVN, Git and Mercurial projects, so you can use Bazaar with those too.
4. Subversion
In Centralized systems, there is a central server, where you check in and check out from. You must have a connection to the server to do source control operations. Subversion uses the centralized Revision Control mode.
Apache Subversion is an open source version control system with the widest adoption. Many open-source projects use Subversion as a repository such as SourceForge and many others. Google Code uses Subversion exclusively to distribute code. Apache Subversion is a full-featured version control system originally designed to be a better CVS. Subversion has since expanded beyond its original goal of replacing CVS, but its basic model, design, and interface remain heavily influenced by that goal. Subversion should still feel very familiar to CVS users.
TortoiseSVN – Windows Client
TortoiseSVN: A Subversion client, implemented as a windows shell extension. TortoiseSVN is easy to use version control software for Windows. TortoiseSVN is a great file browser for viewing, editing and modifying your Subversion code base. TortoiseSVN is free to use.