User Tools

Site Tools


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
5) , 6) via SSH
7) , 9) only if a free hosting service other than has sufficient web space with ssh
8) 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
16) , 17) , 18) via local branches
19) Merges don't follow renames, and logging does not report it
20) builtin
21) , 22) , 23) , 24) via 'tailor'
user/rednaxela/scmtable.txt · Last modified: 2006/08/17 00:47 (external edit)