Mercurial 概述¶
Mercurial 是一种源代码管理工具,允许用户跟踪对源代码的本地更改并与他人共享他们的更改。我们也支持 Git 作为版本控制系统 (请参阅 Firefox 贡献者快速参考)。
安装¶
请参阅 Mercurial 页面 获取安装说明。
使用 hg clone¶
如果您不担心网络中断,则可以使用 Mercurial 直接克隆您感兴趣的代码库,使用其 URL,如下所示。例如,要使用命令行将 mozilla-central
克隆到名为 firefox-source
的目录中,可以使用以下命令
hg clone https://hg.mozilla.org/mozilla-central/ firefox-source
cd firefox-source
使用 Mercurial 捆绑包¶
如果您担心您的互联网连接不够快或不够稳定,无法一次性下载如此大量的数据而不会中断,并且无法使用上面给出的命令进行克隆,那么建议您尝试 Mercurial 捆绑包。如果中断,如果下载应用程序支持,则可以恢复(从中断处继续下载)。例如,在 Firefox 中,您可以在下载文件上右键单击,并在重新建立 Internet 连接后选择“恢复”。
基本配置¶
在向 Mozilla 提交补丁之前,您应该配置 Mercurial。
如果您要拉取 Firefox 源代码或其中一个派生代码库,则配置 Mercurial 的最简单方法是运行 vcs-setup mach 命令
$ ./mach vcs-setup
此命令将启动一个交互式向导,该向导将帮助确保您的 Mercurial 使用最新的推荐设置进行配置。此命令不会在未经您同意的情况下更改您计算机上的任何文件。
其他配置技巧¶
如果您没有 Firefox 源代码可用,则应编辑您的 Mercurial 配置文件使其如下所示
[ui]
username = Your Real Name <[email protected]>
merge = your-merge-program (or internal:merge)
[diff]
git = 1
showfunc = 1
unified = 8
[defaults]
commit = -v
这些设置可以添加到 $HOME/.hgrc
(Linux/macOS) 或 $HOME\Mercurial.ini
(Windows)。
您可以使用 [ui] 部分中的 editor 选项或通过设置 EDITOR 环境变量来配置用于提交消息的编辑器。
如果您尝试通过代理服务器访问代码库,请参阅 这些说明
选择代码库 (树)¶
mozilla.org 上托管着多个 hg 代码库供您选择。下面列出了主要代码库的摘要,但请参阅 https://hg.mozilla.org/ 获取完整列表。
mozilla-central¶
这是 Firefox 的主要开发代码库。大多数开发者针对 mozilla-central 编写补丁。
mozilla-beta¶
当前 Firefox 测试版(以及下一个和所有以前的测试版)的源代码。此代码表示 Firefox 浏览器的预期下一个版本,应该非常稳定。
mozilla-release¶
当前 Firefox 版本(以及下一个和所有以前的版本)的源代码。
autoland¶
这是 Firefox 的集成代码库。补丁首先在此代码库中落地,然后由管理员合并到 mozilla-central 中。
统一代码库¶
高级用户通常希望与多个 Firefox 代码库交互。如果您到达了拥有各个代码库副本变得令人烦恼的程度,请参阅 https://mozilla-version-control-tools.readthedocs.org/en/latest/hgmozilla/unifiedrepo.html 获取有关有效执行此操作的说明。
选择要构建的版本¶
大多数情况下,大多数代码库的 tip 版本都可以正常构建。如果您担心它不能正常构建,那么您可能需要坚持使用 mozilla-central。
构建¶
默认情况下,在没有任何配置的情况下,将执行类似于发布版本的构建。如果需要,您可以使用 .mozconfig
文件和 mach build
配置 构建。不同的操作系统对成功构建有不同的先决条件,请参考 构建文档 以验证它们是否在您的构建机器上可用。
扩展¶
您可以启用许多扩展。请参阅 http://mercurial.selenic.com/wiki/UsingExtensions。几乎每个人都应该启用以下扩展,其中大多数由 mach bootstrap
启用
color - 彩色终端输出
histedit - 提供 git rebase –interactive 功能。
rebase - 能够轻松地将补丁重新基准到其他分支。
evolve - 启用并增强正在进行的 ChangesetEvolution 工作。
firefoxtree - 增强与 Firefox 代码库的交互。
所有这些都可以通过简单地将以下内容添加到您的 .hgrc 文件中来启用
[extensions]
color =
rebase =
histedit =
firefoxtree =
evolve =
此外,还有一些第三方扩展对于基本开发非常有用
- mozext
Mozilla 特定的功能,以帮助开发 Firefox/Gecko。
配置 try 代码库¶
关于 推送到 Try。
学习使用 Mercurial¶
如果您不熟悉 Mercurial,则应从 官方指南 开始。
然后,转到 版本控制工具文档 获取面向 Mozilla 的 Mercurial 信息。