[[[
You'll probably need customize this for the particular person you're
offering full commit access to.  Also, remember to replace instances
of "{AT}" with real "@" signs.  It's just masked in this template to
fool the spam address harvesters.
]]]

### see http://www.apache.org/dev/pmc.html#newpmc for procedure

From: "Some Committer" <a.committer@wherever.example.com>
To: New Full Committer <new.committer@wherever.new.committers.live>
Cc: private{AT}subversion.apache.org
Subject: Full commit access to Subversion

Hi New Full Committer,

The other committers and I would like to offer you full commit access
to Subversion.

If you already have partial commit access, you can accept this offer
by simply replying to this mail.  We'll update the COMMITTERS file (or
you can do it yourself, that's fine too).

If you do not already have partial commit access, you can accept this
offer by replying to this mail and following the instructions at
<http://www.apache.org/dev/new-committers-guide.html#cla>.  You will
receive an email with details on how to access your account.  Once you
have access to your account, you are encouraged to modify the COMMITTERS
file appropriately, which also serves as a test of your new username and
password.

Becoming a full committer also means you'll become part of the Subversion
Project Management Committee (PMC).  The PMC is the managing body of the
Subversion development and user communities.  For more information, see
<http://www.apache.org/foundation/how-it-works.html#pmc> and
<http://www.apache.org/dev/pmc.html#faq>.

Please remember to subscribe to the private (PMC) mailing list by
emailing <private-subscribe{AT}subversion.apache.org>, and to checkout
a working copy of https://svn.apache.org/repos/private/pmc/subversion/.
Note: it typically takes 3 to 5 days after you accepted this invitation,
before access to this protected part of the repository is arranged.  If it
takes too long, please let us know on the private mailing list.

Remember that you can still post patches for review before committing,
when you want to.  Commit access just means that you can rely on your
own judgment to decide when something is ready for commit.  Also, if
you haven't done so already, please read

   http://subversion.apache.org/docs/community-guide/

Thanks for all your work so far!

- Some Full Committer
