[crossfire] CVS branches
Mark Wedel
mwedel at sonic.net
Mon Aug 8 01:49:53 CDT 2005
Nicolas Weeger wrote:
>
Hello.
>
>
>>
The other issue is that generally, I'm not seeing so many commits that
>>
having people hold off a week would seem like much an issue.
>
>
>
Well of course we can always wait one or two weeks to add features. But
>
sometimes it's things we'd rather have people test fast than wait weeks.
>
Also need to consider the possibility of finding a weird bug weeks after
>
the release - nice to be able to backport to current stable even after
>
having a whole lot of commits.
Yes, although that doesn't come up that often.
>
>
>>
The simpler approach would not do real branches, just for me to keep a
>>
checked out copy and use that when making the release, and bring over
>>
changes manually that are critical in nature. Problem with that is you
>>
can get the case where there is no version is CVS that directly
>>
corresponds to the released version. However, I suppose in that case, a
>>
branch for any relevant files could be made at that time.
>
>
>
That could work, but you'd also need to send the files to specific
>
platforms maintainers (me for Windows) to have synchronised releases,
>
with same code.
I could, if necessary, do a branch commit if there are in fact any files that
are different. But then I suppose the question is why not just do a branch in
the first place.
Of course, within CVS, there really isn't a branch until something needs to be
commited that is different.
We probably want the main (head) stream to continue to be CVS. So by the time
you want a branch, it is in a sense too late (someone has already commited
somethign to the head). An in that case, you don't really want a branch, unless
you make changes - you just want to note that version x.y is what is going in
the main release.
Using tags may actually make more sense.
Right now, when I make the actual release, I tag the files, so you can do
something like 'cvs checkout -r rel-1-7-0'.
But as described about, not until a change happens do you need a branch. So
what should probably be done is at the 'code freeze' time do a cvs tag can-1-8-0
or something. Thus, if nothing changes, that can be tagged again as rel-1-8-0 (
can = candidate, rel=release). So if changes are made to CVS head, no big deal
- the can- tag is still there to get the files to release. If a fix needs to be
backported, the can- tag can be used to find the point to make the branch from.
>
>
>>
But what it really comes down to is that it is more work for the person
>>
doing the release (me), and I really don't want to make things any more
>>
complicated for myself - I'd much rather be dong stuff more worthwhile
>>
than syncing up branches.
>
>
>
On the other hand having a branch lets more people contribute to fixing
>
bugs on that release, anyone could backport as opposed to your scenario.
>
Also, I don't think there's a rule in stone saying only you can do
>
releases, is there? :) I'm sure we'd find people to help for that. I'm
>
also pretty sure CVS helps a lot for merging changes.
If other people want to help with releases, that would be great. Having a
more frequent (quarterly) release schedule would also be good.
Even people taking some portiosn of the release (maps, archs) reduces the
effort a bit on my side - those bits aren't really hard, but if I save myself 15
minutes, that is always nice.
More information about the crossfire
mailing list