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 编写补丁。

URL: https://hg.mozilla.org/mozilla-central/

mozilla-beta

当前 Firefox 测试版(以及下一个和所有以前的测试版)的源代码。此代码表示 Firefox 浏览器的预期下一个版本,应该非常稳定。

URL: https://hg.mozilla.org/releases/mozilla-beta/

mozilla-release

当前 Firefox 版本(以及下一个和所有以前的版本)的源代码。

URL: https://hg.mozilla.org/releases/mozilla-release/

autoland

这是 Firefox 的集成代码库。补丁首先在此代码库中落地,然后由管理员合并到 mozilla-central 中。

URL: https://hg.mozilla.org/integration/autoland/

统一代码库

高级用户通常希望与多个 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 启用

  1. color - 彩色终端输出

  2. histedit - 提供 git rebase –interactive 功能。

  3. rebase - 能够轻松地将补丁重新基准到其他分支。

  4. evolve - 启用并增强正在进行的 ChangesetEvolution 工作。

  5. firefoxtree - 增强与 Firefox 代码库的交互。

所有这些都可以通过简单地将以下内容添加到您的 .hgrc 文件中来启用

[extensions]
color =
rebase =
histedit =
firefoxtree =
evolve =

此外,还有一些第三方扩展对于基本开发非常有用

mozext

Mozilla 特定的功能,以帮助开发 Firefox/Gecko。

配置 try 代码库

关于 推送到 Try

学习使用 Mercurial

如果您不熟悉 Mercurial,则应从 官方指南 开始。

然后,转到 版本控制工具文档 获取面向 Mozilla 的 Mercurial 信息。