David Reiss wrote:
Git is set up. Info here: http://wiki.apache.org/thrift/GitRepository
I need to figure out how Git fits into the Apache development style.
Git has not been used much at Apache, certainly not in any project that
I've been involved in. I also have never used Git and speak largely
from ignorance.
It should be noted that there have been flamewars within Apache about
the use of Git, and many feel that it doesn't belong here. I don't want
this discussion to degenerate that way, and am trying to address this
with an open mind and hope that others will too.
Apache places building better community over better code as the highest
priority of a project. Healthy communities build better code long-term
(or something like that). One of the hallmarks of Apache communities is
transparency in communications, providing a level playing field for all
members of the community. For example, IRC is acceptable for casual
conversations, but decisions about changes to the project must be made
on project mailing lists, so that everyone, no matter timezone, etc.,
can contribute to the discussion equally. It's also important to have a
single venue for discussion, patches, bugs, etc., so that everyone sees
the same information.
Some projects operate in a review-then-commit (RTC) mode, where, before
a patch may be committed it must be reviewed by another committer.
Other projects operate in commit-then-review (CTR), where committers are
expected to monitor commit messages and can veto changes retroactively.
(Some projects use different modes for trunk than release branches.)
http://www.apache.org/foundation/glossary.html#CommitThenReview
I've mostly worked on RTC projects. In this case, it is important that
each patch is equally visible and easily applicable by every committer.
If some developers are using Git and some are not, how will this work?
Will every patch still be posted as a flat file in Jira?
One possibility might to declare that all members of the Thrift
community will use Git, and that patches will be shared via a shared Git
repository. Another possibility is that, in Jira, instead of attaching
patches as flat files, one might add links to a patch in the Git repo.
However this seems nearly equivalent to using Subversion in CTR mode.
So, in summary, non-gitters like myself need to understand how we expect
transparent collaboration to function with Git. What is the review
model? It is unacceptable to have subsets of the community sharing
patches that are not yet available to the entire community. When a
patch is first made available for review, it must be made available to
all members of the community. Does this mean we all need to use Git?
Doug