[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