[crossfire] crossfire source code control systems
Mark Wedel
mwedel at sonic.net
Wed Aug 16 00:15:15 CDT 2006
If a distributed model is used, this is how I would see local branches in use:
- Mirrors of the official repository - could be for speed reasons (one in
europe, one in asia, or just in general to cover outages if the official
repository is down).
- For developers to make their changes easily available - instead of sending
what could be a long diff to the mailing list, they could say 'these changes are
in my repository at ...'.
- For several developers who are collaborating on a big change - to have a
repository that they can make their changes on, and when done, commit those back.
I note that in all of these cases, this is basically functionality that CVS
doesn't really support well. I'd have to double check, but I thought most of
the distributed ones have a method to reparent - if you did a checkout from a
mirror, made some changes and wanted to put back, you have to commit to the main
repository so need to reparent to that.
Second and third points could be done in branches in CVS, but then as
discussed, the CVS branching/merging model isn't great. It's also unclear, if
even in a branch, CVS should be used to store work in progress files, etc.
I don't see the use of distributed repositories as a substitution of
committing stuff back to the main repository.
And while there could be reasons that repositories disappear, and thus so do
their changes, that also isn't really different than right now. It probably
isn't uncommon for developers to have changes in their local CVS repositories -
if their hard drive crashed now, or they disappeared, those changes would be
lost. The only real difference right now is that no one would know about it.
If anything, those extra repositories actually help out in this case. If
someone has some changes and say 'you can get it at ABC', and it looks
interesting and I do pull it down, now I have a local copy myself, so if ABC
goes away, it still exists.
I'll note that in no way do I see it being a requirement that developers make
their changes available in this way - you could still send out diffs to the
mailing list, etc, and decide not to look at other repositories. I don't really
see that providing more options is a bad thing.
More information about the crossfire
mailing list