[crossfire] crossfire source code control systems
Mark Wedel
mwedel at sonic.net
Tue Aug 22 01:26:29 CDT 2006
It's been a couple weeks. So doing a quick scoring (using
http://wiki.metalforge.net/doku.php/user:rednaxela:scmtable as the reference):
CVS SVN Hg BZR DARCS
Key Requirements (7) 7 7 6¹ 7 6¹
Top Features (6) 3 3 5.5 4 4
Nice to Haves (7) 2 6 6.5 7 7
TOTAL (20) 12 16 18 18 17
TOTAL2² (30) 20.5 24.5 26.7 27 25
¹missing known free hosting service
²weighted so that key features are times 2, top features times 1.5
so BZR would seem to be the winner, but except for CVS, all score pretty closely.
What throws off the results some is the ability of a hosting service. If
someone added mercurial or a darcs hosting service tomorrow, that changes the
results. OTOH, that can be said for most features - the next release of SVN
could add new features, changing some nos to a yes, etc, so one can't really
plan on what may happen.
(as an aside, I asked sourceforge support about using web space for mercurial
hosting, and the short answer was use SVN or CVS, and given the web space on SF
isn't enough for crossfire, we couldn't use that for either Hg or Darcs even
unofficially).
So quick thoughts:
CVS: path of least resistance, since that is what we are currently using. To
continue using it doesn't preclude us from changing in the future.
SVN: Only reason to switch to this is because sourceforge supports it - it
clearly isn't the best choice in set of features, but is better than CVS.
Still, probably not worth the effort of changing.
Mercurial: If a good hosting service is available, this may be the best option.
But hosting here is tricky - commits, at current time, seem to need ssh access
(may change to https in the future). Free web hosting services may work, but
only if unlimited bandwidth is provided and a common user account can be used
(unique user accounts/user would probably be a pretty big security risk, as most
likely anyone else with an account on the server could muck with the repository
also). The one advantage of distributed SCM's is that the central repository
isn't quite as key (eg, if it went away for some reason, the copy developers
have is completely and could be used to make a new master repository, where as
with SVN/CVS, the data just isn't there in the local repository)
BZR: The two things it is missing to get a perfect score is efficient use of
resources and support for symbolic tagging. As far as I can tell, BZR has no
support for any form of tagging, so using 'branch' tagging would be necessary.
The other issue is that it needs to make a new http connection for each file to
pull. This may not be that big an issue for the server component (where there
are not a lot of files), but this could make things really slow for arch or maps
updates. That said, BZR is the most feasible solution right now (OTOH,
launchpad.net web site has been down for maintenance for the past hour, so not
sure how much better they are from a reliability standpoint over sourceforge)
Darcs: Has the same lack of hosting as mercurial, and otherwise isn't really
better in any regard, so don't see a very compelling reason to look into darcs.
More information about the crossfire
mailing list