1,rcs (Revision control System) revision controls
Features: 1), simple
2, use the lock mechanism to prevent multiple developers from modifying the same file at the same time.
2,CVS (cocurrent version System) concurrent versions
Based on RCS, the most popular open source version control system
Characteristics:
1), using a single main code tree, rather than relying on multiple directories as RCS does.
2, the biggest advantage is that multiple developers can modify a file at the same time. Allow merging.
This is "concurrent" development.
3,svn (SubVersion)
1 version control of the catalog
CVS can only be versioned for files and cannot be versioned for the directory. CVS can only notice that one file was deleted in one place, and another file was created in a new location. Because it does not connect two operations, it is also easy to lose the file history path
SVN can
2) Atomic Submission
CVS uses linear, serial, bulk submissions, that is, sequentially, one after the other commits the submission, each successful submission of a file, a new version of the file is recorded in the version library, and the log information provided by the user at the time of submission is repeatedly stored in the version history of each modified file.
The drawback of the CVS serial bulk commit model is that when a bulk operation is interrupted for any reason (typical reasons include: network interruption, client panic, etc., the version of the library is often in an inconsistent state: the original should be all the storage of the file only part of the storage, it is likely that the latest version of the library can not be compiled smoothly, More seriously, as other users perform CVS update operations, the inconsistency will quickly spread across the development team, seriously impacting team development efficiency and quality pitfalls. In addition, the development team often spends more time doing software debugging and scheduling errors if the bulk submission interruption is not discovered in time.
Git is a version control tool for Linux kernel development. Unlike the commonly used version control tools CVS, Subversion, and so on, it uses a distributed version of the library, without server-side software support, so that the release and exchange of source code is extremely convenient. Git is fast, which is naturally important for large projects such as Linux kernel. The best of Git is its combined tracking (merge tracing) capabilities.
Reference
The difference between <cvs and SVN >ttp://hi.baidu.com/zzx5804/blog/item/998f874f3f7df433aec3ab1a.html
4, Git
Git is a version control tool for Linux kernel development. Unlike the commonly used version control tools CVS, Subversion, and so on, it uses a distributed version of the library, without server-side software support, so that the release and exchange of source code is extremely convenient. Git is fast, which is naturally important for large projects such as Linux kernel. The best of Git is its combined tracking (merge tracing) capabilities.
Git is more suitable for distributed development projects. SVN (and, of course, subversion) is better suited for centralized, large-scale development projects. There is also the practice of using a layer of SVN on top of git.
Reference
< contrast SVN learning git version management tool >http://www.svn8.com/svnjs/20081216/1707.html