Comparison of version control tools-CVS, SVN, git

Source: Internet
Author: User

First, we will introduce the important basis for comparison between several Version Control Software. For more details, refer to the link below:

*Version Library Model): Describes the relationship between copies of multiple source code versions. There are two modes: Client/Server and distributed. In Client/Server mode, each user accesses the master database of the server through the client. Each client only needs to save copies of the files it is concerned with and working copy) only after the changes are submitted to the server can other users see the changes to the corresponding file. In distributed mode, the copies of source code version libraries are equivalent entities. In addition to the Working Copies, users' machines also have historical information about local version libraries.

*Concurrency Model): Describes how to manage conflicts when changing or editing the same working copy/file at the same time to avoid meaningless data, with exclusive locks and merge modes. In the exclusive lock mode, only the user who sends a request and obtains the exclusive lock of the current file can modify the file. In merge mode, users can edit or change files at will, but they may be notified of conflicts at any time (two or more users edit the same file at the same time ), therefore, version control tools or users need to merge changes to solve such conflicts. Therefore, almost all distributed version control software adopts the merge Method to Solve concurrency conflicts.

*History Model): Describes how to store file changes in the version library. There are two modes: snapshot and change set. In snapshot mode, the version library stores the working copies before and after the change. In change set mode, the version library saves the working copies before the change, only the information about changes after the changes are saved.

*Scope of change): Describes whether the version number is for a single file or the entire directory tree.

*Network protocols): Describes the network protocol used for synchronization between multiple version libraries.

*Atomic commit): Describes whether all changes can be submitted or merged at the time of submission, or no changes will occur.

*Partially clone (partial checkout/clone): Whether to copy only the specified sub-directories in the version library.

Name Version Library Model Concurrency Mode Historical Mode Change Scope Network Protocol Atomic committing Partially cloned
CVS Client-server Merge Changeset File Pserver, SSH No Yes
SVN Client-server 3-way merge, recursive merge, octopus merge Changeset and snapshot Tree Custom (SVN), svn m (SVN) over SSH, HTTP and SSL (usingwebdav) Yes Yes
Git Distributed Merge or lock Snapshot Tree Custom, custom over SSH, rsync, HTTP/https, email, Bundles Yes No

Reference Links:

Http://en.wikipedia.org/wiki/Comparison_of_revision_control_software#cite_note-47

Http://www.softeng.rl.ac.uk/media/uploads/publications/2010/03/cvs-svn.pdf

Http://www.smashingmagazine.com/2008/09/18/the-top-7-open-source-version-control-systems/

Http://jon.limedaley.com/plog/archives/2004/10/15/version-control-comparison

Differences Between Trunk and branch in version control software:

Trunk is the main line in the software development process. It stores the information created from the version Library to the current one. Branch-a branch in the software development process that stores information from a specific point of the version Library (not necessarily when the version library is created) to the current. The Branch is mainly used for exploratory or experimental development of new functions without affecting other trunk users. It can also be merged into trunk after the new functions are completed.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.