| SCM feature: | LibreSource Synchronizer | Subversion |
Add to comparison:
+CVS +AccuRev +Aegis +AllChange +Arch +Bazaar +BitKeeper +ClearCase +CM+ +CMSynergy +Co-Op +Darcs +Git +Mercurial +Monotone +OpenCM +Perforce +PureCM +SourceAnywhere +Superversion +Surround SCM +svk +Team Foundation Server +Vesta +Visual SourceSafe |
|---|---|---|---|
|
Atomic Commits |
Yes. Commits and updates are atomic. | Commits are atomic. | |
|
Files and Directories Moves or Renames |
Yes. Renames and move are supported but the working copy needs to be up-to-date before doing a rename/move operation. This operation will be committed directly. | Yes. Renames are supported. | |
|
Intelligent Merging after Moves or Renames |
Yes. Renames are intelligent. However, the rename should be made by the system, in order to be detected in the right manner. | No. "svn help me" says "Note: this subcommand is equivalent to a 'copy' and 'delete'." There's a bug report about it. | |
|
File and Directories Copies |
No, copies will start their own history. | Yes. And it's a very cheap operation (O(1)) that is also utilized for branching. | |
|
Remote Repository Replication |
Yes, but is not documented and its based on the dataflow feature of the LibreSource Synchronizer. | Indirectly, by using Chia-liang Kao's SVN::Mirror add-on or Shlomi Fish' SVN-Pusher utility. | |
|
Propagating Changes to Parent Repositories |
Yes, it's what we call a dataflow. | Yes, using either Chia-Ling Kao's SVN::Mirror script or the svn-push utility by Shlomi Fish. | |
|
Repository Permissions |
Permissions are set for the whole repository or branch. | Yes. The WebDAV-based service supports defining HTTP permissions for various directories of the repository. | |
|
Changesets' Support |
Partial support. There are implicit changeset that are generated on each commit. | Partial support. There are implicit changeset that are generated on each commit. | |
|
Tracking Line-wise File History |
Yes, locally without any server connection with the standard graphical Java client. | Yes. (svn blame) | |
|
Ability to Work only on One Directory of the Repository |
It is possible to commit only a certain directory. However, one must check out the entire repository as a whole. | Yes. | |
|
Tracking Uncommited Changes |
Yes, with the Synchronizer Studio (default Java client) or with the standard diff command (diff -r . .so6/xxx/REFCOPY/) | Yes. Using svn diff | |
|
Per-File Commit Messages |
No. Commit messages are per changeset. | No. There is no such feature. | |
|
Documentation |
Medium. There are an online tutorial and some comprehensive online documentation. Installing and getting started with the GUI is very easy though. (update/commit-next-next-next-finished) | 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. | |
|
Ease of Deployment |
Excellent. It is managed by JavaWebStart with links on any LibreSource repository web page. (links: create workspace, update, commit, studio...) | 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. | |
|
Command Set |
Basic commands available (commit/update), but it's really simple to use the GUI. Ant task are also available. | A CVS-like command set which is easy to get used to for CVS-users. | |
|
Networking Support |
Good. Use of HTTP to get through firwalls. | 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. | |
|
Portability |
Excellent. Clients and servers work on any Java 1.5-compatible platform. (Windows, Linux and Mac OS X ) | Excellent. Clients and Servers work on UNIX, Windows and Mac OS X. | |
|
Web Interface |
Yes, without diff features but with a better awareness support. (allow to know at any time on each version each one is working on) | 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. | |
|
Availability of Graphical User-Interfaces. |
One written in Java/SWING and available on any OS that is automatically launched from the repository web page and another one which is an Eclipse plugin. | 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. | |
|
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. |
|