user:rednaxela:scmtable
A table of various SCM software and their support for requirements as listed on the mailing list by Mark Wedel.
CVS | SVN | Mercurial | Bzr | Darcs | |
---|---|---|---|---|---|
Protocol | dedicated | webdav-based | http-based/ssh | http-based/sftp | http-based/email/ssh1) |
Learning curve from CVS2) | none | low | low-medium | medium | high |
Key requirements | |||||
Network based access | Yes | Yes | Yes | Yes | Yes |
Multiplatform | Yes | Yes | Yes | Yes | Yes3) |
Access control lists | Yes | Yes | Yes4) | Yes5) | Yes6) |
Read-only access to everyone | Yes | Yes | Yes | Yes | Yes |
Supported by sourceforge or some other free hosting service | Yes | Yes | Depends7) | Yes8) | Depends9) |
E-mail notification of commits | Yes | Yes | Yes10) | Yes11) | Yes |
Ability to convert to CVS to whatever the new format is | N/A | Yes | Yes | Yes | Yes |
Top Features: | |||||
Readily available/easily installable software | Yes | Yes | Yes | Yes | No12) |
Tracking of when merges are done | No | No | Yes | Yes | Yes |
Good branch handling | No | No | Yes | Yes | Yes |
Efficient use of resources (network bandwidth, cpu, etc) | Yes | Yes | Mostly13) | No14) | No |
Global revisioning | No | Yes | Yes | Yes | Yes |
support for symbolic tagging within one repository | Yes | No | Yes | No | Yes |
Other nice to have features: | |||||
Atomic checkins | No | Yes | Yes | Yes | Yes |
Maximum ability to do SCCS operations without access to repository | No | Yes15) | Yes16) | Yes17) | Yes18) |
good binary file handling | No | Yes | Yes | Yes | Yes |
Ability to do local branches | No | No | Yes | Yes | Yes |
Rename support | No | Yes | Partial19) | Yes | Yes |
Web view of repository | Yes | Yes | Yes20) | Yes | Yes |
Possible to make a read-only cvs mirror | N/A | Yes21) | Yes22) | Yes23) | Yes24) |
— Alex Schultz 2006/08/14 15:57
1)
requires wrapper script
2)
a bit subjective perhaps
3)
windows only via Cygwin
4)
via SSH, or HTTP server permissions as of hg 0.9.1
8)
Launchpad.net or possibly somewhere with sufficient web space with ssh
10)
via standardly distributed extension
11)
via plugin
12)
written in Haskell
13)
No lightweight checkout, you must use local branches (However I am currently working on a Mercurial extension to provide this regardless of if we use mercurial or not, so this limitation may no longer exist in the near future)
14)
Too many separate http requests causing significant amounts of time establishing connections and DNS lookups
15)
limited to diff, unget, and status
19)
Merges don't follow renames, and logging does not report it
20)
builtin
user/rednaxela/scmtable.txt · Last modified: by 127.0.0.1