Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

 

那些活跃的开发者可以使用CVS来查看最新的源代码。如果你计划提供补丁和修复bug这是你的首选,因为它可以让你得到最新的更新并且作为你自己的。

如果你想编译发布一款产品,一般最好下载Mozilla源代码

开始

CVS"并发版本控制系统"。要想了解更多关于 CVS  通用性欢迎访问 ximbiot.com阅读教程

 

任何人都可以通过 CVS的源代码来Check out (也被称为"拉取"或"下载") ,但只有某些人可信任的人能Check in (进行更改,也被称为"提交")。这些人是模块所有者和他们的代表。阅读我们 hacking mozilla  的文档了解如何获得录入信任。同时你也不妨阅读有关使用 SSH 连接到 CVS

尽管完整的 CVS Checkout可行但并不推荐; mozilla 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:anonymous@cvs-mirror.mozilla.org:/cvsroot
开始使用 CVS 前首先要登录运行以下命令:
$ cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/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" 浏览器。
mail 
独立的 "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:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/client.mk

注意:如果您已经设置了一个 .mozconfig 文件,您仍将需要 check out 以下文件:

Firefox 
cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/browser/config/mozconfig
Thunderbird 
cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co mozilla/mail/config/mozconfig

特定分支

如果您想要 check out 一个特定 CVS 分支的源代码,使用

$ cvs -d :pserver:anonymous@cvs-mirror.mozilla.org:/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 信息。您可以像普通的源代码树一样更新这些树至最新代码,无需多余操作。有关如何更新源代码树的内容请查看前述章节。

文档标签和贡献者

 此页面的贡献者: Peidong_Wang, miaoran2015, Pandaren, teoli, ziyunfei, phenix, Mgjbot, Klp99
 最后编辑者: Peidong_Wang,