[crossfire] SVN?

Mark Wedel mwedel at sonic.net
Wed Mar 22 02:21:12 CST 2006


Nicolas Weeger wrote:
> Hello.
> 
> Apparently Sourceforge now has SVN up, and you can import CVS repository
> directly.
> See http://sourceforge.net/docman/display_doc.php?docid=31070&group_id=1
> for details
> 
> Maybe we could think of moving Crossfire to SVN?

  Couple quick notes from my side on this discussion:

  I'd generally say that to make a switch, what we are switching to has to be 
clearly better.  Making a near even trade may not be a good trade just because 
of the effort to make the switch (all developers need to install SVN software, 
I'd think also that if you have work in progress, you'll have to manually move 
that over to SVN environment, etc).

  There is also perhaps something to be said that CVS is probably more standard. 
  To tell people to use cvs to checkout latest version (and provide them the cvs 
command), good chance they probably have cvs client installed.  Not sure how 
wide spread SVN is either.

  In terms of specific features:
Renames don't happen that often, but sometimes do happen.  I think this mostly 
happens regarding stuff in the arch tree - being able to keep revision history 
on a move would be nice, but most files in the arch tree don't have much a 
history, or if they do, isn't very interesting.

  Where we do very infrequently run into problems is when a file/directory has 
been deleted and we want to re-add it as a different type (file->directory, or 
vice versa).  CVS doesn't like that.  You can resuscitate the file if it is of 
the same type, but not different types.  I can't remember last time this came up 
- long time back, but does come it once in a very rare while.

  Getting specific versions as tchize describes is interesting, but not 
something I have used often.  I do symbolic tag the official releases, so if you 
want to get release 1.4.0, just use the tag rel-1-4-0 with CVS.  Once in a rare 
while, I'll also want to look at the state of things before some specific 
checkin, but doing a checkout based on date has been sufficient so far (cvs 
commits are automatically date stamped).

  I don't know how many people view the CVS tree through the web page, so not 
positive how much benefit we get by SVN making more useful information available.

  In terms of branching, as mentioned, I'm usually the one most hit by this. 
But to me, the real show stopper here is ability to have a nice merge 
functionality.  CVS isn't that great - if the there are no conflicts, no 
problem, but if there are, CVS just brackets the code where there is an issue, 
leaving you to fix it in your favorite editor.  I don't know if SVN is any 
better.  Some other products I have seen do have a nice GUI, letting one select 
which line/block to take.  I think there are graphical CVS tools, so maybe they 
do something similar.

  But the real problems with branches is that I don't think there are currently 
enough people using crossfire that a branch gets much usage.  One idea tossed 
out was to put experimental code in the branch, but if no one uses the branch, 
doesn't do much good.

  One complaint I do have with CVS, and I don't know if SVN is better, is that 
CVS will bring back code I delete.

  Say for example I'm editing a file, and remove the function foo() as well as 
make some other changes.  Someone else makes some change to the file and 
commits.  I do a cvs update, and foo() is now back in my file - even though no 
where along the process were any changes made to foo() itself.  So then I have 
to go and delete again.  Branches may make that a little cleaner.

  One other note regarding SVN on sourceforge - with CVS, we can basically use 
whatever scripts we want for checkin (current e-mail notification being one). 
With SVN, only a few specific scripts are allowed, and it seems that only there 
versions are allowed.  I don't know if that actually makes much difference or 
not - I suppose it depends on what the output of their commit script looks like.




More information about the crossfire mailing list