[crossfire] CVS -> SVN conversion
Mark Wedel
mwedel at sonic.net
Mon Sep 11 01:36:46 CDT 2006
Another question for everyone:
It has been commented/asked several times in the past whether the
automatically generated files should be in the repository, or if it should be up
to the developer to rebuild them. There are several types of files, and my
general thoughts:
flex files that generate .c (loader.c) - not a big space user, yet at the same
time, pretty trivial for most people to generate (probably any system that has
gcc can pretty easily install flex if not already there). The flex files do not
change very often. The one question might be windows (can they easily be
regenerated there?). Given these are small files, I'm sort of mixed on these.
The version of flex used to generate these files really doesn't have any impact
on performance - I don't think we've ever had an issue where someone had a bad
version of flex installed that caused problems.
autoconf/automake generated files: These change less frequently, and
aclocal/automake/autoconf may not be installed as frequently. OTOH, autoconf is
re-run for each release, since that is where the version number is stored, so it
is not like having these in the repository helps out a whole bunch (what really
counts is the version of those tools on the person who makes the release). It's
also a bit nicer to be able to checkout a repository and run the 'standard'
configure/make and get a working product, and not have to run
autoconf/automake/autowhatever.
rebuilt lib files (Archetypes, images, etc): These are the files I'm most
inclined to leave out of SVN. The images tend to be quite big (slowing down
updates). Plus, the updates are rather inconsistent - they are not updated
after every change is made to an arch, but rather when someone remembers to or
is some critical need. Within SVN, we can set up lib/arch to point to the
actual arch tree, so an update of the server also gets updated arches. Plus, we
already have all the tools in place to collect them (the collect.pl script), so
this doesn't add any additional software dependencies. If anything, this may
actually help people use the updated archs.
The only thing which I'm not sure if there is any way to do is have some file,
ideally automatically created, that sits in the arch tree so that the server can
know that the archs have changed and it should do a collect. One can manually
run the command now, and there is a hidden timestamp file, but that file doesn't
do any good if it never changes.
As a note, for any files that we automatically generate that are not normally
in SVN (if we so decide) yet are in the distributions we ship out, I'd expect
they would be in the release branch of the SVN repository for that release (so
you can go to the 1.10 branch and see what the archetypes file had, or see what
the makefile looked like, etc). Although, maybe even that is useless - could
always just download the old releases.
More information about the crossfire
mailing list