開発
Short overview of versioning systems
denvazh
When it’s necessary to use it?
If you’ve ever worked in a group of people on the same project, you might know the frustration of constantly swapping files.
Some do it by email, some through file upload services, and some just use flash drives or something similar.
It’s a pain in the neck, and every designer and developer knows it.
That is why, some people started thinking how to make collaboration more efficient and ended up with a concept well known as Revision control system.
It is an excellent way to combat the problem of sharing files between workers.
Although amongst developers nowadays it is a good practice to use revision control systems, it is not widely used by people of other occupations, like designers.
They might find it a foreign concept, however most obvious benefit of using revision control is the ability to have an unlimited number of people working on the same code base, without having to constantly send files back and forth.
Actually, not only developers and designers can benefit from using revision control systems.
It allows to safely keep copies of their files and designs, and, moreover, allows to instantly browse previous “commits” of the repository and revert to earlier versions if something happens.
Could you be so kind to be more specific?
As usual in open-source environment, there are few approaches, but many implementations and this is true for version system as well. Nowadays, there are 3 well-known and used systems: CVS, SVN and GIT.
CVS? Who is this guy?
CVS is the grandfather of revision control systems. It was first released in 1986, and Google Code still hosts the original Usenet post announcing CVS. CVS is the de facto standard and is installed virtually everywhere. However, the code base isn’t as fully featured as SVN or other solutions.
The learning curve isn’t too steep for CVS, and it’s a very simple system for making sure files and revisions are kept up to date. While CVS may be an older technology, it’s still quite useful for any designer or developer for backing up and sharing files.
There are many tools supporting work through CVS: Tortoise CVS for Windows, and much for for other operating systems. Furthermore, IDEs, such as Xcode (Mac), Eclipse, NetBeans and Emacs, uses CVS as well.
SVN? What are you talking about?
Subversion is probably the version control system with the widest adoption. Most open-source projects use Subversion as a repository because other larger projects, such as SourceForge, Apache, Python, Ruby and many others, use it as well. Google Code uses Subversion exclusively to distribute code.
Because of Subversion’s popularity, many different Subversion clients are available. For Windows users is available a great file browser for viewing, editing and modifying Subversion code base named Tortoise SVN. Mac users can for with SVN using standard XCode Apple’s developer environment which provides a “pleasant way to work with Subversion.”
Git, git, git…
Git is the new fast-rising star of version control systems. Initially developed by Linux kernel creator Linus Torvalds, Git has recently taken the Web development community by storm. Git offers a much different type of version control in that it’s a distributed version control system. With a distributed version control system, there isn’t one centralized code base to pull the code from. Different branches hold different parts of the code. Other version control systems, such as SVN and CVS, use centralized version control, meaning that only one master copy of the software is used.
GitHub has recently helped establish Git as a great version control system, providing a beautiful front end for many large projects, such as Rails and Prototype. However, Git isn’t as easy to pick up as CVS or SVN, so it’s much harder to use for a beginner.
In the next blog entries I will be telling about such topics as using SVN with XCode, using SVN to version control and Trac to manage joint project development and other interesting things as well…