那些活跃的开发者可以使用CVS来查看最新的源代码。如果你计划提供补丁和修复bug这是你的首选,因为它可以让你得到最新的更新并且作为你自己的。
如果你想编译发布一款产品,一般最好下载Mozilla源代码。
开始
任何人都可以通过 CVS的源代码来Check out (也被称为"拉取"或"下载") ,但只有某些人可信任的人能Check in (进行更改,也被称为"提交")。这些人是模块所有者和他们的代表。阅读我们 hacking mozilla 的文档了解如何获得录入信任。同时你也不妨阅读有关使用 SSH 连接到 CVS。
要求
要Check out源代码,您需要运行 CVS 1.11 或更高版本。1.12.13版本无法和CVS 服务器一起使用,反而导致挂起,虽然 1.12.9 已知工作正常。此外,您必须使用 GNU make 来Check out和建立 Mozilla。没有其他"make"是程序可以接受的。在 windows、 mac 和周期性的 GNU 系统 (如 GNU/Linux),使用"make"来运行 GNU make;对大多数非 GNU unix (像例如 Solaris, etc.),使用"gmake"。
CVS 客户端设置
"Cvsroot"(存储库标识字符串) 用于匿名访问 Mozilla CVS
:pserver:[email protected]:/cvsroot
$ cvs -d :pserver:[email protected]:/cvsroot login # type the password anonymous
如果您使用的是 IDE,使用以下服务器数据:
- host: "cvs-mirror.mozilla.org"
- repository path: "/cvsroot"
- user: "anonymous"
- password: "anonymous"
- connection type: pserver
- port: default (2401)
选择一个项目进行拉取
由于多种不同的应用都基于相同的源代码,您必须通过 MOZ_CO_PROJECT 变量
选择对何种应用进行 checkout。当 checkout 真正的源代码时,这一信息(MOZ_CO_PROJECT
)是必需的(详见下面对应于您想要checkout的分支的 checkout 部分)。允许的(MOZ_CO_PROJECT
)选项有:
- browser
- 独立的 "Firefox" 浏览器。
- 独立的 "Thunderbird" 邮件/新闻客户端。
- suite
- 传统的 "Mozilla" SeaMonkey 套件,包括 browser, mail/news, composer 和其他应用。
- minimo
- 独立的针对小型设备的浏览器。
- composer
- 独立的 HTML 编辑器。
- calendar
- 独立的 "Sunbird" 日历应用。
- xulrunner
- 下一代的XUL应用启动器。
- macbrowser
- 针对 Macintosh 的 "Camino" 本地浏览器。
- all
- Check out 以上所有的项目,以及一些附加组件的代码。
选择多项项目可以用逗号分隔:MOZ_CO_PROJECT=suite,browser,xulrunner
.
注意如果您正在使用一个用户自定义的 .mozconfig
文件,您也可以在这一文件中注明 MOZ_CO_PROJECT 设置,而无需在命令行中添加 MOZ_CO_PROJECT。
Checking Out 一个新的源代码树
检查 Tinderbox
在拉取一个代码树之前,您应该检查相应的Tinderbox来确保代码库的完整性。如果存在红色的tinderboxes,我们总是建议您在等到它们变为绿色后,再进行拉取。
HEAD 分支
为了从头开始 check out 一个新的源代码树,需要首先拿到 client.mk 文件。这个文件含有
使用 makefile 对剩余的源代码树进行拉取的说明:
$ cvs -d :pserver:[email protected]:/cvsroot co mozilla/client.mk
注意:如果您已经设置了一个 .mozconfig
文件,您仍将需要 check out 以下文件:
- Firefox
-
cvs -d :pserver:[email protected]:/cvsroot co mozilla/browser/config/mozconfig
- Thunderbird
-
cvs -d :pserver:[email protected]:/cvsroot co mozilla/mail/config/mozconfig
特定分支
如果您想要 check out 一个特定 CVS 分支的源代码,使用
$ cvs -d :pserver:[email protected]:/cvsroot co -r BRANCH mozilla/client.mk
例如,在拉取 Firefox 1.5 development 分支时,需要用 MOZILLA_1_8_BRANCH 替换上面的 BRANCH。在 CVS Tags 中可以查看 Mozilla 中可用的分支标签。
当然前面提供的拉取特定项目的 .mozconfig
文件的方法对除 HEAD 外的分支同样适用。
Checkout
在选定正确的分支后,运行:
$ cd mozilla
$ make -f client.mk checkout MOZ_CO_PROJECT=option,option
上面已经提到,如果您正在适用已经注明了 MOZ_CO_PROJECT
变量的 .mozconfig 文件,无需在命令行中重复注明。
特定时刻
如果您想要 check out 源代码在某一特定时刻的状态,您可以使用 MOZ_CO_DATE 变量。例如 MOZ_CO_DATE="20 Oct 2006 17:00 PDT"。
这一说明可以加入 .mozconfig
文件中,或者可以在命令行注明,例如
$ cd mozilla
$ make -f client.mk checkout MOZ_CO_DATE="20 Oct 2006 17:00 PDT" MOZ_CO_PROJECT=option,option
将源代码树变更至另一个分支
HEAD 分支
更新一个源代码树(无论是 HEAD 分支还是一个特定的分支)至最新的 HEAD 分支,运行:
$ cd mozilla
$ cvs up -A client.mk
-A 选择项会删除任何“黏性分支” ("sticky branch")信息,从而达到更新至 HEAD 分支的效果。
特定分支
更新一个从某一特定分支拉取来的源代码树,首先使用
$ cd mozilla
$ cvs up -r BRANCH client.mk
将 BRANCH 替换为您想要更新的分支的标签。
更新一个源代码树
只需使用以下方法即可更新您的代码树:
$ make -f client.mk checkout MOZ_CO_PROJECT=option,option
同样地,如果您使用了 MOZ_CO_PROJECT
已被定义的用户自定义 .mozconfig
文件,无需在命令行中重复注明。
创建一个 Diff 文件
为一个与当前知识库(repository)中相应文件不同的单一本地文件创建 diff,使用:
$ cvs diff -u8p FILENAME
更多信息可以查看 Creating a patch。
转换一个已下载的源代码树
与普通的 checkout 相同,从 mozilla.org (source tarballs) 下载的源代码树已经被设置了 CVS 信息。您可以像普通的源代码树一样更新这些树至最新代码,无需多余操作。有关如何更新源代码树的内容请查看前述章节。