| SCM feature: | Subversion | svk |
Add to comparison:
+CVS +AccuRev +Aegis +Arch +Bazaar +BitKeeper +ClearCase +CM+ +CMSynergy +Co-Op +Darcs +Git +LibreSource Synchronizer +Mercurial +Monotone +OpenCM +Perforce +PureCM +SourceAnywhere +Superversion +Vesta +Visual SourceSafe |
|---|---|---|---|
|
Atomic Commits |
Commits are atomic. | ||
|
Files and Directories Moves or Renames |
Yes. Renames are supported. | ||
|
File and Directories Copies |
Yes. And it's a very cheap operation (O(1)) that is also utilized for branching. | Yes. Same as subversion. | |
|
Remote Repository Replication |
Indirectly, by using Chia-liang Kao's SVN::Mirror add-on or Shlomi Fish' SVN-Pusher utility. | Yes. | |
|
Propagating Changes to Parent Repositories |
Yes, using either Chia-Ling Kao's SVN::Mirror script or the svn-push utility by Shlomi Fish. | Yes. | |
|
Repository Permissions |
Yes. The WebDAV-based service supports defining HTTP permissions for various directories of the repository. | Same as subversion. | |
|
Changesets' Support |
Partial support. There are implicit changeset that are generated on each commit. | Same as subversion. | |
|
Tracking Line-wise File History |
Yes. (svn blame) | Yes. (svk blame) | |
|
Ability to Work only on One Directory of the Repository |
Yes. | ||
|
Tracking Uncommited Changes |
Yes. Using svn diff | Yes. Using svk diff | |
|
Per-File Commit Messages |
No. There is no such feature. | ||
|
Documentation |
Very 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. | Relatively poor, but improving. There's a work-in-progress book as well as the Wiki and some external Articles and Tutorials. | |
|
Ease of Deployment |
A 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. | In addition to installing subversion, users are required to install the subversion perl bindings and a few modules from CPAN. | |
|
Command Set |
A CVS-like command set which is easy to get used to for CVS-users. | ||
|
Networking Support |
Very 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. | Very 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. | |
|
Portability |
Excellent. Clients and Servers work on UNIX, Windows and Mac OS X. | Good. Clients requires subversion and its perl bindings. | |
|
Web Interface |
Yes. ViewVC, 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. | Yes. Same as Subversion. | |
|
Availability of Graphical User-Interfaces. |
Very good. There are many available GUIs: RapidSVN (cross-platform), TortoiseSVN (Windows Explorer plug-in), Jsvn (Java), etc. Most of them are still under development. | No GUIs are available. | |
|
Information taken from Better SCM Initiative website by Shlomi Fish (shlomif@iglu.org.il). Reorganized for usability by Alexey Mahotkin (Version Control Blog) in 2008. |
|