Version control is an excellent way to allow unlimited number of people working on the same code base, without having to constantly send files back and forth. Designers and developers can both benefit from using such systems to keep copies of their files and designs. They can revert to earlier versions if something happens. Here I discuss some popular version control systems:
CVS is the Concurrent Versions System, the dominant open-source network-transparent version control system. It was first released in 1986. CVS is the de facto standard and is installed virtually everywhere. It’s useful for any designer or developer for backing up and sharing files. Tortoise CVS is a great client for CVS on Windows, and there are many different IDEs, such as Xcode (Mac), Eclipse, NetBeans and Emacs, that use CVS.
- Introduction to CVS
- CVS Best Practices
- SVN and CVS Quick Comparison
- Version Control with CVS on Mac OS X
SVN or Subversion is the most popular version control system. Most open-source projects (SourceForge, Apache, Python, Ruby and many others) use it as a repository. Google Code uses Subversion exclusively to distribute code. For Windows, Tortoise SVN is a great file browser for viewing, editing and modifying your Subversion code base. For Mac, you have to use Versions. For Apple’s developer environment you have to use Xcode.
- Subversion home page
- Getting Started with Subversion – Mac
- Getting Started with Subversion – Windows
- Subversion for Designers
- Comparison of Subversion Clients
- Subversion for Java
Bazaar have a very friendly user experience. It supports many different types of workflows, from solo to centralized to decentralized, with many variations in between. People have used it to version pretty much anything: single-file projects, your /etc directory and even the thousands of files and revisions in the source code for Launchpad, MySQL and Mailman. You can use it to fit almost any scenario of users and setups. It’s easy to modify and also embeddable, so you can add it to existing projects. Bazaar runs on GNU/Linux, UNIX, Windows and OS X out of the box. Bazaar is friendly, smart, fast, lightweight, extensible, embeddable, safe and free. Lists of plug-ins for Bazaar that are available under a free software license are given their plug-ins page. The page UsingPlugins gives detailed explanations about the plugin concept and installation instructions for plugins.
- Bazaar documentation – For learning everything about Bazaar.
- Bazaar in five minutes – How to set up Bazaar quickly.
- Bazaar migration guides – Guides on migrating to Bazaar from CVS, Subversion, Darcs, Mercurial and other systems.
Git is a distributed version control systems initially developed by Linux kernel creator Linus Torvalds. Different branches hold different parts of the code instead one centralized code base to pull the code from. Git prides itself on being a fast and efficient system, and many major open-source projects use Git to power their repositories like Linux Kernel, Ruby on Rails, WINE, Fedora, X.org, Rubinius, and VLC etc. Git is used for version control of files, much like tools such as Mercurial, Subversion, CVS, Perforce, Bitkeeper, and Visual SourceSafe. GitHub has recently helped establish Git as a great version control system. It’s much harder to use for a beginner.
Mercurial is a cross-platform, distributed revision control tool for software developers. It was designed for larger projects, most likely outside the scope of designers and independent Web developers. It is extremely fast, and the creators built the software with performance as the most important feature. It’s easy to use because it’s functions are similar to those in other CVS systems. The creator and lead developer of Mercurial is Matt Mackall. Mercurial was initially written to run on Linux. It has been ported to Windows, Mac OS X, and most other Unix-like systems. Some projects using the Mercurial distributed RCS are Aldrin, Audacious, Dovecot IMAP server, Growl, MoinMoin wiki software, Mozilla, Netbeans, OpenJDK, SAGE and Sun’s OpenSolaris.
LibreSource is a versatile collaborative platform. It is used to manage collaborative projects. Open Source, modular and highly customizable, LibreSource is adapted to collaborative software development (forge), groupware, community leading, e-archiving and Web publishing. It has built-in features such as Wiki pages, forums, trackers, Synchronizers, Subversion repositories, files, download areas, drop boxes, forms, instant messaging and more. LibreSource is perfect for the developer or designer who doesn’t want to learn lots of technical jargon and wants to focus more on communication with the project’s members. LibreSource uses most of the advanced services provided by the ObjectWeb application server called JOnAS. Effective communication is a fundamental requirement for agile project management. LibreSource includes a Software Configuration Management tool called LibreSource Synchronizer which is innovative, simple and united. LibreSource simplifies the creation of a dynamic community and help to maintain and enhance team relationship in order to improve the cooperative efficiency. Just install the package and start collaborating.
- LibreSource Documentation – Lots of articles and tutorials for working with LibreSource.
- LibreSource vs. Subversion – Showing their differences.
- LibreSource Community web portal
Monotone is another distributed revision control system. Monotone is fairly easy to learn if you’re familiar with CVS systems, and it can import previous CVS projects.
- Monotone Wiki – It’s documentation.
- Monotone front ends and Tools – Lengthy list of front ends for working with Monotone.
Source Jammer is a source control and versioning system written in Java. It consists of a server-side component that maintains the files and version history, and handles check-in, check-out, etc. and other commands; and a client-side component that makes requests of the server and manages the files on the client-side file system. SourceJammer is coded in 100% Java, so it is platform independent.
GNU arch is a distributed revision control system that is part of the GNU Project and licensed under the GNU General Public License. It is used to keep track of the changes made to a source tree and to help programmers combine and otherwise manipulate changes made by multiple people or at different times. Being a distributed, decentralized versioning systems, each revision in GNU arch is uniquely globally identifiable; such identifier can be used in a distributed setting to easily merge or cherry-pick changes from completely disparate sources. Its other features are Atomic commits, Changeset oriented, easy branching, advanced margin, cryptographic signature, renaming and metadata tracking.
Version control Tools:
- QCT GUI commit tool
- Meld works with CVS, Subversion, Bazaar and Mercurial.
- Push Me Pull You works with Mercurial, Git, Bazaar and Darcs.
- OpenCM work for CVS.
Filed under: PHP, web dev | Tagged: Bazzar, Beanstalk, CVS, Eclipse, Emacs, Git, GitHub, GNU arch, Google Code, Internet, LibreSource, Mercurial, Monotone, NetBeans, Online Communications, Software Development, Software/Web Development, Subversion, SVN, Tortoise CVS, Tortoise SVN, version control, Versions, Web Servers, Wiki, Xcode |