Comparison between Subversion and svk

Back to main page

   
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.

 

Creative Commons License
This work is licensed under a Creative Commons License.