版本控制系统特色比较

Version Control System Comparison

This is a comparison of version-control systems. It is split into several categories and sub-categories under which the systems are checked.

Timestamp: $Id: scm-comparison.xml 259 2006-04-14 17:15:57Z shlomif $

Repository Operations

Atomic Commits

Support for atomic commits means that if an operation on the repository is interrupted in the middle, the repository will not be left in an inconsistant state. Are the check-in operations atomic? Are the check-in operations atomic, or can interrupting an operation leave the repository in an intermediate state?

CVSNo. CVS commits are not atomic.
AegisCommits are atomic.
ArchYes. Commits are atomic.
BitKeeperYes (but need to verify)
ClearCaseYes. Commits (checkins) are atomic.
CMSynergyYes. Commits are atomic.
Co-OpYes. Commits are atomic.
DarcsYes. Commits are atomic.
MercurialYes.
MonotoneYes.
OpenCMYes. Commits are atomic.
PerforceYes. Commits are atomic.
PureCMYes. Commits are atomic.
SubversionCommits are atomic.
SuperversionCommits are atomic.
svkCommits are atomic.
VestaYes. Commits are atomic.
Visual SourceSafeNo. VSS commits are not atomic.

Files and Directories Moves or Renames

Does the system support moving a file or directory to a different location while still retaining the history of the file?

CVSNo. Renames are not supported and a manual one may break history in two.
AegisYes. Renames are supported.
ArchYes. Renames are supported.
BitKeeperYes. Renames are supported.
ClearCaseYes. Directories are first-class controlled entities in Clearcase. Even supports controlling of symbolic/hard links.
CMSynergyYes. Renames are supported.
Co-OpRenames of files are supported. Renaming a directory requires creating a new one, moving the files and deleting the old one. Moved file histories are preserved.
DarcsYes. Renames are supported.
MercurialYes. Renames are supported.
MonotoneYes. Renames are supported.
OpenCMYes. Renames are supported
PerforceNot directly (you copy and then delete but it manages to keep track of the branch; the item below allows for this very feature)
PureCMYes. File renames are directly supported. File and folder moves require creating a new one and deleting the old one. Moved file histories are preserved.
SubversionYes. Renames are supported.
SuperversionNo. Renames are not supported.
svkYes. Renames are supported.
VestaYes. The unit of checkout/checkin is a directory tree. Files and directories can be added, deleted, and renamed between versions.
Visual SourceSafeAffects the whole history, it's like renaming a file in the CVS repository. There is a kludgy workaround using "share-rename,move,delete" that gets what you want.

File and Directories Copies

Does the version control system supports copying files or directories to a different location at the repository level, while retaining the history?

CVSNo. Copies are not supported.
AegisNo. Copies are not supported.
ArchNo. Copies of files and directory structures are not supported.
BitKeeperYes. Copies are supported.
ClearCaseYes, through use of hard links. (But some limitations in Windows environments)
CMSynergyYes, and it's a very cheap operation (update the target directory to include the new file/directory).
Co-OpCopying doesn't retain history, moving does.
DarcsNo. Copies of files and directory structures are not supported.
MercurialYes. Copies are supported
MonotoneYes. Copies are supported
OpenCMNo. Copies are not supported.
PerforceCopies are supported (though, because of its architecture, I don't know how well)
PureCMYes. Copies are supported.
SubversionYes. And it's a very cheap operation (O(1)) that is also utilized for branching
SuperversionNo. Copies are not supported.
svkYes. Same as subversion.
VestaYes. A new package/branch can be based on any existing version without affecting the past history. (This is also an O(1) operation.)
Visual SourceSafeYes. Copies are supported up to a point.

Remote Repository Replication

Does the system support cloning a remote repository to get a functionally equivalent copy in the local system? That should be done without any special access to the remote server except for normal repository access.

CVSNo.
AegisYes.
ArchYes.
BitKeeperYes.
ClearCaseNot really applicable for clearcase, but see next point.
CMSynergyYes, as long as you have the (more expensive) Distributed package.
Co-OpRepositories are always replicated on local machines. There is no central server.
DarcsYes.
MercurialYes.
MonotoneYes.
OpenCMNo.
PerforceYes. Via the Perforce Proxy (P4P) tool.
PureCMNo.
SubversionIndirectly, by using Chia-Ling Kao's SVN::Mirror add-on or Shlomi Fish' svn-push utility.
SuperversionYes.
svkYes.
VestaYes. Replication is a fundamental part of the design.
Visual SourceSafeNot directly possible with the included GUI or command line tools; ssarc and ssrestor might be useable

Propagating Changes to Parent Repositories

Can the system propagate changes from one repository to another?

CVSNo.
AegisYes.
ArchYes.
BitKeeperYes.
ClearCaseYes, using Clearcase Multisite.
CMSynergyYes, as long as you have the (more expensive) Distributed package.
Co-OpIt's a peer-to-peer system, which keeps all replicas of the repository in sync.
DarcsYes.
MercurialYes.
MonotoneYes.
OpenCMNo.
PerforceUnknown. Probably Not.
PureCMNo.
SubversionYes, using either Chia-Ling Kao's SVN::Mirror script or the svn-push utility by Shlomi Fish.
SuperversionNo.
svkYes.
VestaYes.
Visual SourceSafeNot directly possible with the included GUI or command line tools; ssarc and ssrestor might be useable

Repository Permissions

Is it possible to define permissions on access to different parts of a remote repository? Or is access open for all?

CVSLimited. "pre-commit hook scripts" can be used to implement various permissions systems.
AegisYes. Aegis relies on the UNIX permissions system to implement permissions for files in the repository.
ArchYes. It is possible to define permissions on access to different parts of a remote repository based on the permission systems of the underlying protocol.
BitKeeperFILL IN
ClearCaseYes, a unix-like permissions model is used, which maps onto Windows domain-based authentication in multi-platform environments.
CMSynergyNo, though a single server can serve many repositories.
Co-OpFirst access (joining the project) requires administrator's approval. Subsequent access to that project is not controlled.
DarcsNo.
MercurialYes. It is possible to lock down repositories, subdirectories, or files using hooks.
MonotoneYes. It is possible to restrict incoming changes from certain sources to be performed only in certain parts of the repository.
OpenCMPermissions are defined on a per-branch basis.
PerforceYes. (more than half a dozen of permission levels that can be set in a file by file basis)
PureCMYes. (more than half a dozen of permission levels that can be set in a file by file basis)
SubversionYes. The WebDAV-based service supports defining HTTP permissions for various directories of the repository.
SuperversionNo.
svkSame as subversion.
VestaYes. Access permissions for each package (the unit of checkout/checkin) can be different. Access permissions for a branch can be different from the basis package.
Visual SourceSafeProject specific permissions (read, write, delete, destroy) can be set per user; but see "Networking Support": this makes "Repository Permissions" a hindrance to accidental damage but cannot prevent intentional damage.

Changesets' Support

Does the repository supports changesets? Changesets are a way to group a number of modifications that are relevant to each other in one atomic package, that can be cancelled or propagated as needed.

CVSNo. Changes are file-specific.
AegisYes. Changesets are supported.
ArchYes. Changesets are supported.
BitKeeperYes. Changesets are supported.
ClearCaseNot supported in this way. Extensive branching support gives similar benefits. (eg each changeset can be given a branch). Also optional UCM feature gives something like this (each changeset is a "stream").
CMSynergyYes. Changesets (or tasks) are fundamental to the way Synergy works.
Co-OpYes. Changesets are the default.
DarcsYes. Changesets are supported.
MercurialYes. Changesets are supported.
MonotoneYes. Changesets are supported.
OpenCMYes. Changesets are supported.
PerforceYes. Changesets are supported.
PureCMYes. Changesets are supported.
SubversionPartial support. There are implicit changeset that are generated on each commit.
SuperversionPartial support. Changes are grouped into changesets, but cannot be cancelled invididually yet.
svkSame as subversion.
VestaNot exactly. Vesta uses a related concept of configurations instead, which some has similar properties.
Visual SourceSafeNo. Changes are file-specific.

Tracking Line-wise File History

Does the version control system has an option to track the history of the file line-by-line? I.e: for each line show at which revision it was most recently changed, and by whom?

CVSYes. cvs annotate
AegisYes. aeannotate
ArchNot in the command line client, but ViewARCH, a web-interface for Arch, has it.
BitKeeperYes. (bk annotate)
ClearCaseYes, "cleartool annotate"
CMSynergyProbably, if you're a sufficiently proficient hacker with their scripting language.
Co-OpNot directly, but it's possible to compare any two versions using a visual differ.
DarcsYes. (darcs annotate)
MercurialYes. (hg annotate)
MonotoneYes, as of version 0.19.
OpenCMUnknown. Probably not.
PerforceYes, an annotation feature is present.
PureCMNo.
SubversionYes. (svn blame)
SuperversionNo.
svkYes. (svk blame)
VestaNo, but it would be easy to implement a tool that did this, as the Vesta repository provides direct filesystem access to all versions.
Visual SourceSafeNot directly, but it's possible to compare any two versions using a visual differ.

Features

Ability to Work only on One Directory of the Repository

Can the version control system checkout only one directory of the repository? Or restrict the check-ins to only one directory?

CVSYes.
AegisNo. All changes are made repository-wide.
ArchIt is possible to commit only a certain directory. However, one must check out the entire repository as a whole.
BitKeeperNo. All changes are made repository-wide.
ClearCaseYes, using snapshot view load rules.
CMSynergyYes and no. Files and directories are checked out and in individually, however you have to work in the context of a project, which consists of one or more directories.
Co-OpNo. All changes are made to a project as a unit, but it's possible to access each file's history separately.
DarcsIt is possible to commit only a certain directory. However, one must check out the entire repository as a whole.
MercurialIt is possible to commit changes only in a subset of the tree. There are plans for partial checkouts.
MonotoneIt is possible to commit changes only in a subset of the tree. However, one must extract the entire tree to work on it.
OpenCMNo. All changes are made to a project as a unit
PerforceYes. Changes to a sub-directory of the repository are supported.
PureCMYes.
SubversionYes.
SuperversionNo.
svkYes.
VestaYes and no. The unit of checkout/checkin (called a package) is a directory tree. Most projects use more than one. Once created, a package must be checked out/in as a unit.
Visual SourceSafeYes.

Tracking Uncommited Changes

Does the software has an ability to track the changes in the working copy that were not yet commited to the repository?

CVSYes. Using cvs diff
AegisYes. Using aediff.
ArchYes, using "tla changes".
BitKeeperYes. Using bk diff.
ClearCaseYes, "cleartool diff"
CMSynergyYes, either using integrated diff tool or user-configured external diff tool
Co-OpYes, using built-in visual differ/editor.
DarcsYes, using "darcs whatsnew".
MercurialYes. Using hg diff.
MonotoneYes. In a similar fashion to CVS.
OpenCMYes. Using cm diff
PerforceYes.
PureCMYes.
SubversionYes. Using svn diff
SuperversionYes. Local changes are detected and shown immediately. Changes can be collected in a local buffer before being committed to the repository.
svkYes. Using svk diff
VestaYes. Intermediate immutable snapshots can be taken during an active checkout (with vadvance). These intermediate versions can be treated just like checked in versions: they can be replicated to other repositories and used as the basis for branches.
Visual SourceSafeYes, using integrated diff tool.

Per-File Commit Messages

Does the system has a way to assign a per-file commit message to the changeset, as well as a per-changeset message?

CVSNo. Commit messages are per change.
ArchNo.
BitKeeperYes. It is possible to have a per-file commit message
ClearCaseYes, assuming a comment on the branch is sufficient for a per-changeset message.
CMSynergyYes.
Co-OpNo. Commit messages are per change. They go to all project members and update their repositories.
DarcsNo.
MercurialNo.
MonotoneYes. It is possible to attach a comment to a certain file at a certain revision.
OpenCMUnknown.
PerforceNo. Commit messages are per change.
PureCMNo. Commit messages are per change.
SubversionNo. There is no such feature.
SuperversionYes.
svkNo. There is no such feature.
VestaNot exactly. The unit of checkin is a directory, and commit messages are assigned at that level, not to individual files. Since configurations are also versioned, they also have commit messages.
Visual SourceSafeSince changesets are not supported, yes.

Technical Status

Documentation

How well is the system documented? How easy it is to get started using it?

CVSExcellent. There are many online tutorials and resources and an online book. The command line client also provides an online comprehensive help system.
AegisMedium. The documentation is given in several large scope troff documents, that are only usable as not-so-PDFish PDF documents, and as text documents that lack any formatting. It is very hard to get started using it with the online resources. The content is of good quality, but otherwise not made very accessible.
ArchMedium. There are two online tutorials and a comprehensive online documentation. The command line client also supplies a reference page. However, some of the documentation is out of date or incomplete.
BitKeeperVery good. There is a comprehensive help at the BitKeeper site. Each command is documented in its own man page, and the client contains a help tool that offers an integrated help system.
ClearCaseExtensive online help in Windows Help / UNIX manpage format, also PDF-based documentation. However the complexity of the tool can mean a lengthy ramp-up time.
CMSynergyMedium. Lots of books, plus somewhat clunky set of HTML pages, but has some radical concepts which can cause real problems really quickly. They recommend a day's training for basic users, more for more advanced users. Took a while to become fluent.
Co-OpVery good. Step-by-step tutorial and HTML help is included.
DarcsGood. The manual contains a brief tutorial and a solid reference. Every sub-command can print its usage. Because the command-set is small and the model is simple, many users find it easy to get started.
MercurialVery good. There's an overview and tutorial on the web site, and integrated help for every command.
MonotoneGood. There's an overview and tutorial written in Texi, and a man page. The client supplies documentation for every command.
OpenCMWell documented.
PerforceVery Good (html and command line help)
PureCMVery Good (html and command line help)
SubversionVery good. There is a free online book and some online tutorials and resources. The book is written in DocBook/XML and so is convertible to many different formats. The command-line client also provides a good online help system that can be used as a reference.
SuperversionFairly poor. There are two tutorials, but there is no reference. Installing and getting started with the GUI is very easy though.
svkVery poor at this moment.
VestaQuite thoroughly (HTML, man pages, published papers, a book-length research report).
Visual SourceSafeMedium. Help file which is sometimes useful. However, the interface is reasonably intuitive so documentation isn't needed as much.

Ease of Deployment

How easy it is to deploy the software? What are the depenedencies and how can they be satisfied?

CVSGood. Out of being the de-facto standard, CVS is available on most systems and is easy to deploy.
AegisThe Aegis binary should be installed as SUID-root, and so requires root privileges to install. It also not very portable to Win32 systems. Other than that, Aegis supports an easy autoconf or RPM/apt-based installation process.
ArchExcellent. An arch service is nothing but a filesystem-space hosted by any of its supported protocols (FTP, SFTP, WebDAV, etc.). The arch client is written in C, and is portable across UNIX systems (and on Win32 only with a UNIX emulation layer).
BitKeeperGood. All that is required is downloading a binary for the system and installing it using the installation script. The package is self-contained and is easy to set up.
ClearCasePoor. Clearcase is very difficult to install in general. At least, setup for a new site is quite complex. Installing additional servers (eg repository servers) is less so.
CMSynergyMedium. There is a detailed install guide for setting it up using a binary kit and a set of scripts. However it still took several tries to get it properly installed and configured. The Windows client has a slightly clunky Windows installer.
Co-OpVery easy to deploy, since there is no central server. Can be configured to use e-mail or LAN (or both) for synchronization. For e-mail, requires MAPI-compliant e-mail client.
DarcsVery good. darcs requires few external libraries, however you need the Glasgow Haskell Compiler if you cannot find a binary. To start working, just "darcs init".
MercurialExcellent. Binary packages are available for all popular platforms. Building from source requires only Python 2.3 (or later) and a C compiler.
MonotoneExcellent. It is possible to copy or compile the executable to the user's machine, without any configuration or external dependencies.
OpenCMVery good. Install the RPM, or build from tarball and install the init script.
PerforceVery good. Perforce is very easy to deploy.
PureCMVery good. PureCM is very easy to deploy.
SubversionA Subversion service requires installing an Apache 2 module (if one wishes to use HTTP as the underlying protocol) or its own proprietary server. The client requires only the Subversion-specific logic and the Neon WebDAV library (for HTTP). Installation of the components is quite straightforward, but will require some work, assuming Subversion does not come prepackaged for one's system.
SuperversionIf Java 1.4 is installed, deployment of Superversion usually takes two clicks.
svkIn addition to installing subversion, users are required to install the subversion perl bindings and a few modules from CPAN.
VestaMedium to Good. There is a detailed installation guide for setting it up using a binary kit. RPMs and Debian packages have been recently released. There are no dependencies on other software. There is a bootstrap package available to build Vesta from using "make".
Visual SourceSafeVery good - an installation package which does the work. When you create a repository it installs the exe's in a directory and you can run them from there if you need to.

Command Set

What is the command set? How compatible it is with the commands of CVS (the current open-source defacto standard)?

CVSA simple command set that includes three most commonly used commands (cvs commit, cvs update and cvs checkout) and several others.
AegisA complex command set that involves many operations just to get started. Not CVS-compatible. (albeit support for such basic operations was contemplated) Note that Aegis is a Software Configuration Management system and not just a simple version control system, which may justify this extra complexity.
ArchMany commands are compatible with CVS or BitKeeper. However, there are many other commands for it for different uses. Aliasing of commands is possible so it it may be possible to make it more compatible.
BitKeeperA CVS-like command set with some easy-to-get-used-to complications due to its different way of work and philosophy.
ClearCaseExcellent. All tools are available through the command-line. Not very compatible with CVS though.
CMSynergyAn extensive and powerful command set, which has some CVS similarity, though the architecture is so different that it quickly moves away for anything but the basics.
Co-OpBasic commands are compatible with CVS.
DarcsThe command set is fairly compact and the core commands are easy to understand. Follows CVS in a few places, but since the model is different most commands are unique.
MercurialTries to follow CVS conventions, but deviates where there is a different design.
MonotoneTries to follow CVS conventions, but deviates where there is a different design.
OpenCMA CVS-like command set that is familiar to existing CVS users.
PerforceVery extensive but not compatible with CVS.
PureCMA CVS-like command set which is easy to get used to for CVS-users.
SubversionA CVS-like command set which is easy to get used to for CVS-users.
SuperversionThere is little need to memorize a command set because all actions take place in a GUI. A part of the terminology used in the application is borrowed from CVS.
svkA CVS-like command set which is easy to get used to for CVS-users.
VestaThe command set is unrelated to CVS. Most of the time, users use about 5 commands. Few ever need to know more than about 20 commands.
Visual SourceSafeA bit of an afterthought. It's possible to do basic things, but it's really geared up for using the GUI.

Networking Support

How well is the networking integration in the system? How compliant it with existing protocols and infra-structure.

CVSGood. CVS uses a proprietary protocol with various variations for its client/server protocol. This protocol can be tunneled over an SSH-connection to support encryption.
AegisPoor. Aegis is filesystem-oriented and so can be networked only via NFS (network file-system) or a similar protocol. There exists some HTTP-functionality, but it is quite limited.
ArchExcellent. Arch can utilize a multitude of protocols for its service, which is nothing but a dumb remote filesystem server. Currently supported protocols include FTP, SFTP, WebDAV (remote file access over HTTP), as well as any remote filesystem protocol (NFS, SMB).
BitKeeperGood. Repositories can be checked out from remote over HTTP, and BitKeeper also sports its own proprietary protocol for communicating between one repository and the other.
ClearCasePoor. Uses an *extremely* chatty RPC protocol for most clearcase operations, plus NFS or SMB for accessing the files themselves. Typically servers should be deployed locally (ie on the same LAN) as the client workstations for acceptable performance.
CMSynergyGood (single TCP/IP socket)
Co-OpUses the simplest LAN interface: copying files between shared directories.
DarcsGood. Darcs supports getting patches over HTTP, and getting and sending patches over SSH and email.
MercurialExcellent. Uses HTTP or ssh. Remote access also works safely without locks over read-only network filesystems.
MonotoneGood. Uses a custom protocol called "netsync".
OpenCMGood. Uses its own proprietary client/server protocol.
PerforceGood. (single TCP/IP socket)
PureCMGood. (single TCP/IP socket)
SubversionVery good. The Subversion service can use either WebDAV+DeltaV (which is HTTP or HTTPS based) as its underylying protocol, or its own proprietary protocol that can be channeled over an SSH connection.
SuperversionGood. Network support based on RMI is integrated seamlessly. Encryption and HTTP tunnelling are planned for the near future.
svkVery good. svk uses SVN::Mirror to retrieve remote repository. There has been plans to add VCP support to SVN::Mirror so it will be able to mirror from arbitary remote version control systems.
VestaNetworking is inherent to the system. The repository exports both an NFS interface and an RPC interface. The checkout and checkin tools automatically contact a remote repository when required to perform an operation.
Visual SourceSafeVSS uses a Windows network share which has to be writable for the VSS users (since this means doubling maintenance for new users). Add user in VSS and to share permissions. the share is most often world-writable, as is the default when creating a share) It does not perform well over a slow network connection.

Portability

How portable is the version-control system to various operating systems, computer architectures, and other types of systems?

CVSGood. Client works on UNIX, Windows and Mac OS. Server works on UNIXes and on Windows with a UNIX emulation layer.
AegisMedium. The source is portable across all UNIXes, but the Windows version work only using cygwin, and even then not entirely natively.
ArchGood. The source is portable across all UNIXes, but requires a UNIX emulation layer on Windows. (need to verify). A service can be hosted on any platform that sports a suitable Internet service.
BitKeeperVery good. Binaries are available for most common UNIX systems and for Windows 98 and above.
ClearCaseMedium. Available on Windows, and several selected flavours of UNIX (not including MacOS X, or any other Linux other than Red Hat).
CMSynergyVery good - various flavours of Unix, Windows (only NT family for the server), VMS, and possibly other systems.
Co-OpWindows only: starting with Win95.
DarcsVery good. Supports many UNIXes, Mac OS X, and Windows, and is written in a portable language.
MercurialExcellent. Runs on all platforms supported by Python. Repositories are portable across CPU architectures and endian conventions.
MonotoneExcellent. Executable is portable across all UNIXes and Win32.
OpenCMGood. Portable across all UNIX systems.
PerforceExcellent. Runs on UNIX, Mac OS, BeOS and Windows.
PureCMGood. Server and gui run on Windows. Command line also runs on UNIX and Mac OS.
SubversionExcellent. Clients and Servers work on UNIX, Windows and Mac OS X.
SuperversionExcellent. Clients and servers work on any Java 1.4-compatible platform. There is official support for Windows, Linux and OS/2.
svkGood. Clients requires subversion and its perl bindings.
VestaGood. It should be portable to any UNIX system. Currently it runs on Digital/Compaq/HP Tru64 UNIX and Linux on several different CPU architectures. Ports to Solaris and FreeBSD are planned but haven't begun yet.
Visual SourceSafeThe Microsoft Product is Windows only. MainSoft ships a version of it for some UNIX platforms.

User Interfaces

Web Interface

Does the system have a WWW-based interface that can be used to browse the tree and the various revisions of the files, perform arbitrary diffs, etc?

CVSYes. WebCVS, ViewCVS, ,Chora and wwCVS.
AegisYes.
ArchThere's ViewARCH, and ArchZoom which are works in progress.
BitKeeperYes. Its own built-in web-interface.
ClearCaseYes. Web views are supported.
CMSynergyPossibly.
Co-OpSince this functionality is always available locally, there is no need for web interface.
Darcsdarcs.cgi is included in the distribution.
MercurialYes. The web interface is a bundled component.
MonotoneNo.
OpenCMNo.
PerforceYes, P4Web.
PureCMNo.
SubversionYes. ViewCVS, SVN::Web, WebSVN, ViewSVN, mod_svn_view, Chora, Trac, SVN::RaWeb::Light, SVN Browser, Insurrection and perl_svn. Aside from that, the Subversion Apache service provides a rudimentary web-interface.
SuperversionNo.
svkYes. Same as Subversion.
VestaYes: Vestaweb.
Visual SourceSafeIt is possible to code one using the API, but no official or third-party one exists.

Availability of Graphical User-Interfaces.

What is the availability of graphical user-interfaces for the system? How many GUI clients are present for it?

CVSVery good. There are many available GUIs: WinCVS, Cervisia (for KDE), TortoiseCVS (Windows Explorer plug-in).
AegisThere is tkaegis.
ArchThere are tlator, Octopy, and ArchWay and possibly others under development.
BitKeeperGood. BitKeeper ships with several GUIs for performing common tasks. I'm not aware of any third-part GUIs.
ClearCaseSupplied for both Windows and UNIX. GUI tools are typically not as solid as the command-line tools though.
CMSynergyA couple of GUIs. A motif-based one (even on Windows) allows most functionality but is clunky. A nicer Java one allows developer work but not much administrative stuff. Has an SCCI plug-in, though it doesn't handle network problems well.
Co-OpThe system is GUI-based by design.
DarcsNone to speak of. (There is a modest graphical interface to a few commands in the distribution, but it is not being developed currently.)
MercurialHistory viewing available with hgit extension; check-in extension (hgct) makes committing easier. Some third-party IDEs and GUI tools (e.g. eric3, meld) have integrated Mercurial support.
MonotoneNo GUIs are available.
OpenCMNo GUIs are available.
PerforceYes, P4Win and others based on the available libp4 library.
PureCMWindows has a very user friendly gui.
SubversionVery good. There are many available GUIs: RapidSVN (cross-platform), TortoiseSVN (Windows Explorer plug-in), Jsvn (Java), etc. Most of them are still under development.
SuperversionA GUI is integrated.
svkNo GUIs are available.
VestaNo GUIs are available, but the repository has a C++ API, and it is not hard to write one. (At least three different project-specific ones have been written by users at Compaq and Intel.)
Visual SourceSafeStandalone GUI comes with it, plus SCCI plug-in for MS Visual Developer Studio. There is an Eclipse plug-in.

License

What are the licensing terms for the software?

CVSGNU GPL (open source)
AegisGNU GPL (open source)
ArchGNU GPL (open source)
BitKeeperProprietary, binary only license. Pay per use license, with an option for a costless license for developers of open-source software. Used to have a gratis, downloadable license, which was intended for the develpoment of open source software. It had a problematic license, and was discontinued starting at April 2005.
ClearCaseProprietary, with floating license supported. License server contacted for each clearcase operation, which obtains a license to be used for the next 30-60 mins. Prices are several $k per license plus yearly maintenance fee. Typically 1-3 users per license required, depending on activity. Multisite requires additional licensing.
CMSynergyPrices negotiable with salesman. Server is typically roughly 20,000 British Pounds. Clients are 4,000 British Pounds. Per-year costs of 18% of original.
Co-OpProprietary, short text key. 30-day full-featured trial. Free to "observers" (members who don't make changes). $159 per workstation.
DarcsGNU GPL (open source)
MercurialGNU GPL (open source)
MonotoneGNU GPL (open source)
OpenCMGNU GPL (open source), but moving soon to BSD or CPL (also open source).
PerforceA proprietary, binary only, commercial license. Price starting at $800 per seat for the first year and then $160 for continuing support for the subsequent years. Free for Open Source projects (no support in this case).
PureCMA proprietary, binary only, commercial license. Price starting at $600 for 5 users
SubversionApache/BSD-style license. (open-source)
SuperversionGNU GPL (open-source)
svkPerl License. (open source)
VestaGNU LGPL (open source)
Visual SourceSafeVSS Ships with MSDN, and can also be purchased standalone or with other tools.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值