William Jiang

JavaScript,PHP,Node,Perl,LAMP Web Developer – http://williamjxj.com; https://github.com/williamjxj?tab=repositories

Tag Archives: cvs

Version control: git or cvs

For the version control, I use 2 of them: CVS, and git. Here is a summary of the 2 famous tools.

(1) CVS
This is traditional way which is related with rcs, Unix way for version control.
The Concurrent Versions System (CVS), also known as the Concurrent Versioning System, is a client-server free software revision control system in the field of software development. Version control system software keeps track of all work and all changes in a set of files, and allows several developers (potentially widely separated in space and/or time) to collaborate.

I like the $Id$, which marks as cvs control and will extend when ‘cvs commit/update’.
It is quite convenient for the development, in a Client-Server mode.

I wrote 2 documents for the maintaining of projects. They are for server site configure as well as client side utilizing.
(1.a) server side:
CVS server document
(1.b) client side:
CVS client document (WinCVS)

(2) git
The fast version control system is the new popular way.
Some big sites such as prototype scriptaculousalready uses it.

Git is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.

Every Git clone is a full-fledged repository with complete history and full revision tracking capabilities, not dependent on network access or a central server. Branching and merging are fast and easy to do.

I am currently using it as version control tool, the syntax is very similar with CVS, quite easy to add, modify, remove, check status, versions comparing, and merging different version etc.
Here is a illustration which list the key functions:
git illustration

git or cvs? There are not big difference between them, either works.
For a linux guy, git would be the first choice, coz it easily uses command-lines; and its repository is under the project directory ($HOME/project/.git/), easy to maintain.
For cvs, it has a windows screen which is a pure GUI environment, suitable for GUI user; its repository is out of current project, it seems better for big project management.