Free Source Code Version Control Software
Manage multiple versions of your software efficiently and intelligently
Free Source Code Version Control Management Software
If you maintain software, you will probably find yourself needing to manage multiple versions of your software. The packages on this page allow you to manage them in a space efficient manner. Instead of storing the different versions of your sources in entirety, these packages store only the differences between the versions. You can then use the various programs in the package to retrieve different versions of your source code, check your change log, compare the changes made in your current source with previous versions, etc. In general, unless your program is very trivial, it is usually a good idea to put your program under a source code version control management software from the very start. The version control software (also known variously as source code management, source configuration management system, or simply "SCM") not only provides you savings in storage space, it also helps you to track down earlier versions of your code should you, say, inadvertantly introduce a code change that you regret later.
Note: some of the packages listed here are designed for individual programmers working on a single machine while others (eg CVS) are designed for distributed projects that have numerous programmers in different locations working on it.
If you are doing distributing development, you will probably also need a web host. Some web hosts, like DreamHost provide an easy way for you to create CVS and SVN repositories on your own web hosting account.
Free Source Code Management, SCM or Revision Control Software
Fossil is a distributed version control system (DVCS), bug tracker, wiki and technotes software all rolled into one. It uses HTTP, HTTPS, or SSH for its network communications, so it should work even if your system is behind a firewall with restrictive rules. It has an integrated web interface, can serve as a web server with support for CGI, and has the usual facilities a version control system has. The repository, and in fact all its content, is stored in an SQLite database. The entire software system comes in a self-contained standalone executable file. Precompiled binaries are available for Windows, Mac OS X, Linux, and OpenBSD. It is released under the BSD licence.
Mercurial is a source control management system meant for handling large distributed projects. It allows arbitrary merging between developer branches, provides SHA1 integrity checking on repository data, has an append-only storage model with transaction journalling, features a full-repository verification, is optimized for disk layout and access efficiency, is scalable and supposedly does not degrade with large numbers of files or changesets, has a convenient backup facility, includes an integrated standalone web interface, etc. Platforms supported include Windows, Mac OS X and Unix systems like Linux, BSD, Solaris, and AIX. In fact, it probably works on other systems that has Python and SetupTools installed as well. It is released under the GNU General Public License.
TortoiseHg is a shell extension for Windows that provides a GUI (graphical user interface) and Windows explorer integration for the Mercurial SCM software. It has some similarity to the other "Tortoise" clients for CVS, SVN and Git (see elsewhere on this page).
- Git - Fast Version Control System
Git, originally designed by Linus Torvalds (the father of Linux), is a distributed version control system that makes every Git clone a full-fledged repository and mirror of the original repository. Your clone contains the complete history of changes and full revision tracking facilities, and is not tied to a central server. Other features include fast branching and merging operations and the ability to efficiently handle large projects (for example, at this time, both Linux and Perl, among many others, use Git). Note: if you are using Windows, check out TortoiseGit, listed elsewhere on this page.
TortoiseGit is a GUI (graphical user interface) for using the Git SCM (source code management system) on Windows. It is a port of TortoiseSVN (see elsewhere on this page). At the time this mini-review was written, TortoiseGit is still under development (that is, not yet feature-complete), although it can already commit files, show the log, show a diff of two versions, create branches and tag revisions.
TortoiseSVN is a Windows Subversion client (see elsewhere on this page for Subversion), implemented as a Windows explorer shell control. As such, it has all the usual features of a source code control system, as well as the ability to version folders, rename and delete files, etc. You can check in/out files and folders via the right-click menu, delete files from the revision control system, revert to an old version, check the logs, merge files, check the difference between the current version and an older version, etc, directly from the Windows explorer shell. TortoiseSVN works on Windows 95, 98, 98SE, ME, 2000, XP (although you need IE 5.5 or later installed on the earlier systems). There is limited support for Windows Vista as well.
Bazaar-NG is a decentralized revision control system that allows users to commit their own branches of the source code for particular software without requiring special permissions.
Darcs is a revision control system released under the GNU GPL. Platforms supported include Linux, Windows, MacOS X, FreeBSD, OpenBSD, NetBSD, DragonFlyBSD, Solaris, and AIX. It also comes with a CGI script that allows you to browse through your source code repository via the web.
Monotone is a free distributed version control system. Its features include a single-file transactional version store, fully disconnected operation, history-sensitive merging, lightweight branches, integrated code review, third-party testing, cryptographic version naming, client-side RSA certificates, internalization support, and no external dependencies. Supported platforms include Linux, Solaris, Mac OSX, Windows and other Unix systems. It is licensed under the GNU GPL.
- Perforce Server and Visual Client
The Perforce Server, an SCM system, manages the Perforce central file repository and handles the versioned files and change logs. The free version supports up to 20 users and 20 workspaces with unlimited number of files, or unlimited number of users with a limit of 1,000 files. Numerous operating systems are supported, including Windows, Mac OS X, Linux, etc.
TortoiseCVS is an easy-to-use version control for Windows that allows you to work with CVS files (whether local or on a CVS server). It integrates directly into Windows explorer, and yet allows you to limit the amount of integration so that your system does not become sluggish. You can simply right click on the files or folders you want to manage using version control, select the necessary procedure to apply, and Tortoise CVS will do the necessary. It shares its features for source code management (SCM) with CVS.
- GNU Revision Control System (GNU RCS)
GNU RCS is a revision control system that allows you to manage multiple versions of your source code in a space efficient manner. Instead of storing multiple versions of your sources in entirety, RCS stores only the differences between the versions. You can then use RCS to retrieve different versions of your source code. Although the software is command line driven, you can easily integrate them into the menus of many modern editors for automatic checking in and out. Note that the link above leads to the source code archive. You will have to compile it yourself for your operating system. Precompiled binaries for MSDOS and Windows 95/98/ME can be found in the DJGPP archive (see the Free C/C++ compilers page). If you need help on using this package, there's even a book on this: Applying RCS and SCCS: From Source Control to Project Control (an O'Reilly Nutshell book).
- Vesta Configuration Management System
Vesta is a portable SCM system that is able to handle both small and large software projects (eg 10 million source lines). Originally developed at the Compaq/Digital Systems Research Center, and later used by the Compaq Alpha microprocessing group, it was later released by Compaq under the GNU LGPL. It runs on Linux and the Compaq Tru64 Unix on Alpha.
- JEDI Version Control System (formerly FreeVCS)
This version control and project management system can be used on a local computer, across a LAN, WAN, the Internet as well as in mixed environments. It uses a "scalable, TCP/IP based client/server architecture". It offers secure data transfer for transfers over a network or the Internet using a 128 bit Blowfish encryption algorithm. Data is stored in SQL database tables, and may be accessed with other database tools as well. It has an IDE, context sensitive help, Zip compression for the archived files, etc. It is a Windows program, and requires Windows 9x, ME, NT 4.0, 2000.
- GNU Arch Revision Control System
GNU Arch is a revision control system that supports distributed and private repositories, history-sensitive branch merging, the ability to host repositories using HTTP, FTP, SFTP and WebDAV, renames, etc.
- /BriefCase 3 Toolkit
Like other revision control systems, /BriefCase allows you to manage multiple versions of your software. It runs on Unix and Linux systems with the Korn Shell and awk. It uses a client/server model, with a RCS-based central repository.
This is a source control and versioning system that is written in Java, and as such should be able to run on any system that has a Java virtual machine. You can (of course) check in/check out your sources, managed text and binary files, have multiple users accessing your sources, etc.
- Subversion Version Control
Subversion is a version control system designed to be a "compelling replacement of CVS". Like CVS, it is open source. It includes all of CVS' features, with support for "versioning" directories, file renames, permission changes, and other file meta-data. It supports symbolic links, hard links, internationalization, multi-lingual support, atomic commits, cheap branching and tagging operations, plug-in client-side diff programs, etc. It is natively client/server, unlike CVS.
This is a front end to a set of revision control tools that is supposed to be simpler to use than RCS, SCCS and CVS. At the time of this writing, it relies on GNU RCS to do certain tasks. It is portable to most Unix systems (and clones) including FreeBSD, Linux, SunOS 4, Solaris, HP-UX, IRIX, Ultrix 4, Digital Unix, AIX, Dynix/PTX, and Unixware. Source code is provided.
Aegis supports multiple developers on a project, and includes an intranet web interface. It is designed for repository security, and supports distributed and multiple repositories. It runs on "almost any flavour of Unix." Source code is provided.
- CVS (Concurrent Version System)
CVS provides version control on entire directory trees. It supports client/server operations where developers may be scattered all over the globe. CVS is supported on most Unices and clones, Windows NT/95, OS/2, and VMS. It is probably one of the most widely used free version control systems around and has the advantage that it is not only free, but is open source.
This is another SCCS clone, which provides version control compatible with those managed by SCCS on a number of Unix systems. It is useful if you have source code currently managed under SCCS and need to move it to a system without SCCS.
How to Link to This Page
It will appear on your page as: