ENGLISH 意见建议 网站地图 网站帮助
广泛智力汇聚   高效成果传播   先进机制培育
联盟首页  |  协同开发  |  开放源码库  |  安全告警  |  开源导航  |  文档中心  |  服务支持  |  共创论坛  |  关于联盟

注册会员 网站帮助
    您的位置 »
    今天是: 2010年11月21日    





项目名称: Master Group:
文档管理: 显示文档

摘要| 管理| 首页| 论坛| 跟踪| 错误| 支持| 补丁| 电子邮件| 任务| 文档 |  调查| 新闻| 软件包|

提交新文档 | 查看文档 | 管理

Getting email from CVS

In any large project, keeping track of changes is difficult.   CVS does
a reasonable job of allowing source changes to be controlled and
managed, but does not provide tools to make it easier to work with a
changing code base.   The hardest part of working on a dynamic project
with many changing modules is knowing when changes occur, and what
those changes are.

Software developers often are heavy email users, spending huge amounts
of time working with their email software.   Open source developers are
among the most serious email addicts out there, sorting through
hundreds of emails a day, since this is often the only way to stay in
touch with users and fellow developers.

Clearly, we need more email.

Set up a mailing list

If you haven't already created a mailing list to handle messages sent
by CVS, follow these instructions to do so.

To get started, surf to your project's "Project Page."   If the "Public
Areas" section of the page doesn't list "Mailing Lists," click over to
the Project Admin page, the to the Edit Public Info
page.   Make sure the "Use Mailing Lists:" checkbox is on, and click
"Update."   Now go back to your "Project Page."

Go to the Mailing Lists page and click through to the
Admin page.   Select Add Mailing List to get a really
easy-to-use form that asks you only two questions:

  1. What do you want to name your list?

    Since all SourceForge list names start with the Unix name of your
    project and a hyphen, you don't even have to worry about that part!
    You just decide on the hard part: "Do I call it
    myproject-cvs, or myproject-checkins?"   You can
    choose other names, but those are well-recognized by active open
    source developers.

  2. Should I let just anyone subscribe?

    "Yes" will already be checked for you, so leave it that way.   You want
    your users to be able to subscribe so they'll know when you've fixed
    the bug they reported, because they want to try out the changes as
    soon as they're in.

Ok, so you really only had to decide one thing -- that's even better.
Now, click the "Add This List" button, and wait for your list to be

Set up syncmail

syncmail is a Python
script written by Barry Warsaw to send mail to the
python-checkins list long ago, before the Python development
tree moved to SourceForge.   It's undergone a bit of evolution, but
essentially does one thing: send email based on CVS activity.   It
takes a little bit of information from CVS and generates messages that
include useful information, such as the actual changes that happened
to the modified files.   It shoves all this into email that gets sent
to an email address passed on the command line.   For projects with
enough developers that syncmail becomes interesting, this will
typically be a mailing list.

For your project, this will be
[email protected] or
[email protected], depending on the name
you chose in the first part of these instructions.

To install syncmail, you need a working copy of the
face="sans serif">CVSROOT
directory from your CVS repository.
Check it out just like you did for your project modules, but with the
module name "CVSROOT".

Now, get the latest version of syncmail.   The canonical copy is
in the repository for the GNU
mailing list manager (the one you're using for the
checkins list you set up earlier).   Get it from SourceForge:


Save the most recent revision to your working copy of your project's
CVSROOT directory.   Use chmod +x
to set the executable bit for all users, and then add the file to your
project: cvs add syncmail; cvs commit syncmail.   You
probably want to mention in your comment message where the file came
from and the revision number you picked up.

Send a support request to SourceForge asking the admin to check out a
working copy of syncmail into your CVSROOT directory and verify that it gets the proper
executable permissions.   The admin only needs to execute cd
; co syncmail to get the
desired behavior.   Copy those commands into your support request to
make it easy on the admin; they're busy people!   Be sure to change
"yourproject" to the real Unix name for your project.

Configure CVS to use syncmail

Now that you've spent the better part of a day (or night) reading
these instructions, and a few minutes following them, you have just a
tiny bit more to do to get CVS to put syncmail to work.

After some stressed out, overworked SoruceForge administrator
has handled your request to checkout a working copy of syncmail
into the repository, you need to modify your CVSROOT/loginfo file to tell CVS to invoke
syncmail for all the interesting events CVS is willing to tell
us about.

If you have not modified the >CVSROOT/loginfo file from the stock file provided by
SourceForge (which is very useful, as the comments include
documentation), what you need to do is very simple: just add stuff to
the end.   Here's some example stuff to get you started:

CVSROOT $CVSROOT/CVSROOT/syncmail %{sVv} [email protected]

DEFAULT $CVSROOT/CVSROOT/syncmail %{sVv} [email protected]

This will cause email to be sent to two different places, with which
depending on what files in the repository are affected.   For
administrative files in the CVSROOT
directory, email will be sent to [email protected]; you
should probably list all your project administrators here.   For all
other files, email will be sent to your mailing list (remember to
change the list name to match your mailing list!).

If you have several sub-products for which you want different checkin
lists, you can change the "DEFAULT" label to match the subtree that
you want to go to each list, with a separate line for each distinct
prefix.   For example, if your project includes the products "one" and
"two", you could use the following:

CVSROOT $CVSROOT/CVSROOT/syncmail %{sVv} [email protected]

one/ $CVSROOT/CVSROOT/syncmail %{sVv} [email protected]
two/ $CVSROOT/CVSROOT/syncmail %{sVv} [email protected]

You can still have a "DEFAULT" line that gets used for any additional

If you do not have a stock >CVSROOT/loginfo file, then you can probably figure out what
you need to do to combine the information above with your existing
changes.   You might not have even needed any of these instructions!

Check in your changes to CVSROOT/loginfo
and check in some other change in your working directories to test your
new configuration.

Read email!

Now for the real test.   If you have started a successful Open Source
project, you will not be able to catch up with your email.   If you can
keep up with it and still have time to hack, you need to make your
project more attractive to others, so you can get more developers
checking in more changes.   Then you'll always have more email than you
know what to do with!

© 共创软件联盟 版权所有
联盟服务条款 | 联盟隐私权规则 | 联系我们
电话: (8610)68313388-5949 | 传真: (8610)88377936