[[[
You'll probably need customize this heavily for the particular person
you're offering partial 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.
]]]

From: "Some Committer" <a.committer@wherever.example.com>
To: New Partial Committer <new.committer@wherever.new.committers.live>
Cc: svn-full-committers{AT}red-bean.com
Subject: Commit access for Subversion FROBLINGS area

Hi New Partial Committer,

The other committers and I would like to offer you partial commit
access for maintenance of the Subversion FROBLINGS area.

If you already have partial commit access to another area, 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 forwarding a copy of this mail to svnadmin{AT}svn.collab.net,
and including in that message your tigris.org username.  A temporary
password will be chosen for you and revealed via email -- you can
change the password yourself later <https://svn.collab.net/wpct/>.)
Once you are notified that your account has been activated, you are
encouraged to modify the COMMITTERS file appropriately, which also
serves as a test of your new username and password.

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.tigris.org/hacking.html

Thanks for all your work so far!

- Some Full Committer
