How to become a committer
There are two types of commit access: full and partial. Full
means anywhere in the tree, partial means only in that committer's
specific area(s) of expertise. The processes AnkhSVN uses to get
commit access is copied from the Subversion community.
How full commit access is granted
After someone has successfully contributed a few non-trivial
patches , some full committer, usually whoever has reviewed and
applied the most patches from that contributor, proposes them for
commit access. This proposal is sent only to the other full
committers -- the ensuing discussion is private, so that everyone
can feel comfortable speaking their minds. Assuming there are no
objections, the contributor is granted commit access. The decision
is made by consensus; there are no formal rules governing the
procedure, though generally if someone strongly objects the access
is not offered, or is offered on a provisional basis.
The primary criterion for full commit access is good judgment.
You do not have to be a technical wizard, or demonstrate deep
knowledge of the entire codebase, to become a full committer. You
just need to know what you don't know. If your patches adhere to
the coding guidelines, adhere to all the usual unquantifiable rules
of coding (code should be readable, robust, maintainable, etc.),
and respect the Hippocratic Principle of "first, do no harm", then
you will probably get commit access pretty quickly. The size,
complexity, and quantity of your patches do not matter as much as
the degree of care you show in avoiding bugs and minimizing
unnecessary impact on the rest of the code.
How partial commit access is granted
A full committer sponsors the partial committer. Usually this means
the full committer has applied several patches to the same area
from the proposed partial committer, and realizes things would be
easier if the person were just committing directly. Approval is not
required from the full committers; it is assumed that sponsors know
what they're doing and will watch the partial committer's first few
commits to make sure everything's going smoothly.
Patches submitted by a partial committer may be committed by that
committer even if they are outside that person's domain. This
requires approval (often expressed as a +1 vote) from at least one
full committer. In such a case, the approval should be noted in the
log message, like so:
Approved by: arild
Any full committer may offer anyone commit access to an
experimental branch at any time. It is not necessary that the
experimental branch have a high likelihood of being merged to trunk
(although that's always a good goal to aim for). It's just as
imporant that the full committer — all the full committers,
actually — view such branches as training grounds for new
developers, by giving feedback on the commits. The goal of these
branches is both to get new code into Subversion and to get new
developers into the project.