查看 V8 源代码

本文档介绍如何本地检出 V8 源代码。如果您只想在线浏览源代码,请使用以下链接

使用 Git #

V8 的 Git 仓库位于 https://chromium.googlesource.com/v8/v8.git,在 GitHub 上有一个官方镜像:https://github.com/v8/v8

不要直接 git clone 这些 URL 中的任何一个!如果您想从您的检出中构建 V8,请按照以下说明进行操作,以确保一切设置正确。

说明 #

  1. 在 Linux 或 macOS 上,首先安装 Git,然后安装 depot_tools

    在 Windows 上,请按照 Chromium 说明 (适用于 Google 员工适用于非 Google 员工) 安装 Visual Studio、Windows 调试工具和 depot_tools(在 Windows 上包含 Git)。

  2. 通过在您的终端/shell 中执行以下命令来更新 depot_tools。在 Windows 上,这必须在命令提示符 (cmd.exe) 中完成,而不是在 PowerShell 或其他程序中完成。

    gclient
    
  3. 对于 **推送访问权限**,您需要设置一个包含您的 Git 密码的 .netrc 文件

    1. 转到 https://chromium.googlesource.com/new-password 并使用您的提交者帐户(通常是 @chromium.org 帐户)登录。注意:创建新密码不会自动撤销任何以前创建的密码。请确保您使用的电子邮件与 git config user.email 设置的电子邮件相同。
    2. 查看包含 shell 命令的大型灰色框。将这些行粘贴到您的 shell 中。
  4. 现在,获取 V8 源代码,包括所有分支和依赖项

    mkdir ~/v8
    cd ~/v8
    fetch v8
    cd v8

之后,您将有意处于分离头状态。

您可以选择指定如何跟踪新分支

git config branch.autosetupmerge always
git config branch.autosetuprebase always

或者,您可以像这样创建新的本地分支(推荐)

git new-branch fix-bug-1234

保持最新 #

使用 git pull 更新您当前的分支。请注意,如果您不在分支上,git pull 将不起作用,您需要使用 git fetch 代替。

git pull

有时 V8 的依赖项会更新。您可以通过运行以下命令来同步这些依赖项

gclient sync

发送代码以供审查 #

git cl upload

提交 #

您可以使用代码审查中的 CQ 复选框进行提交(首选)。另请参阅 chromium 说明,了解 CQ 标志和故障排除。

如果您需要比默认值更多的 trybots,请在 Gerrit 上的提交消息中添加以下内容(例如,用于添加 nosnap bot)

CQ_INCLUDE_TRYBOTS=tryserver.v8:v8_linux_nosnap_rel

要手动落地,请更新您的分支

git pull --rebase origin

然后使用以下命令提交

git cl land

尝试作业 #

本节仅对 V8 项目成员有用。

从代码审查创建尝试作业 #

  1. 将 CL 上传到 Gerrit。

    git cl upload
  2. 通过向 try bots 发送尝试作业来尝试 CL,如下所示

    git cl try
  3. 等待 try bots 构建,您将收到一封包含结果的电子邮件。您也可以在 Gerrit 上的补丁中查看尝试状态。

  4. 如果应用补丁失败,您需要重新整理补丁或指定要同步到的 V8 版本

git cl try --revision=1234

从本地分支创建尝试作业 #

  1. 将一些更改提交到本地仓库中的 git 分支。

  2. 通过向 try bots 发送尝试作业来尝试更改,如下所示

    git cl try
  3. 等待 try bots 构建,您将收到一封包含结果的电子邮件。注意:目前一些副本存在问题。建议从代码审查发送尝试作业。

有用参数 #

修订版参数告诉 try bot 使用哪个代码库修订版来应用您的本地更改。如果没有修订版,将使用 V8 的 LKGR 修订版 作为基础。

git cl try --revision=1234

要避免在所有 bots 上运行您的尝试作业,请使用 --bot 标志,并使用逗号分隔的构建器名称列表。例如

git cl try --bot=v8_mac_rel

查看尝试服务器 #

git cl try-results

源代码分支 #

V8 有几个不同的分支;如果您不确定要获取哪个版本,您很可能想要最新的稳定版本。请查看我们的 发布流程,以了解有关使用不同分支的更多信息。

您可能希望跟踪 Chrome 在其稳定(或测试版)频道上发布的 V8 版本,请参阅 https://omahaproxy.appspot.com/