Git 源代码编辑器

概览

Git 源代码编辑器 (ci.android.com/edit) 是一款基于浏览器的工具,用于对 Android 开源项目 (AOSP) 中的文件进行修改并将变更上传到 Gerrit。Git 源代码编辑器旨在对少量文件进行细微更改,并提供比下载 Android 源代码树更快的工作流程。 在使用 Git 源代码编辑器之前,您应该熟悉使用 Git、Repo 和 Gerrit 提交 AOSP 变更的完整流程。

使用 Git 源代码编辑器修改文件时,所有工作都在本地计算机上进行,直到您上传变更以创建 Gerrit 变更列表。

登录

  1. 在浏览器中加载 Git 源代码编辑器
  2. 点击 Log in 以登录您的账号。

    登录按钮

    图 1. 登录按钮

修改文件和变更

Git 源代码编辑器具有以下主要工作流:

  • 在您选择的分支中修改您选择的一个或多个文件。
  • 修改变更。修改变更的结果取决于变更创建者:
    • 如果变更是由您创建的,您在 Git 源代码编辑器中所做的修改将以新补丁集的形式附加到这项变更中。
    • 如果变更是由其他人创建的,您在 Git 源代码编辑器中所做的修改会根据您加载的变更,创建由您所有的新变更。

加载要修改的内容

加载文件或变更,开始修改。

加载文件

  1. 在页面顶部的文件/变更路径框中输入您要修改的文件的网址。

    示例文件路径: https://android.googlesource.com/platform/build/+show/refs/heads/main/Changes.md

  2. 点击 Load file or change

    加载文件或变更

    图 2. 加载文件或变更

    系统会在编辑器窗格中加载文件。编辑器窗格左侧的导航窗格是一个文件浏览器,用于打开代码库并预加载文件。

    文件已加载到修改窗格

    图 3. 文件已加载到修改窗格

您可以使用导航窗格打开同一代码库中的多个文件。打开多个文件时,每个文件都会以标签页的形式显示在编辑窗格上方的行中。点击某个标签页即可在编辑窗格中打开相应文件。

已加载文件对应的标签页

图 4. 已加载文件对应的标签页

加载变更

在页面顶部的文件/变更路径框中输入 Gerrit 变更列表的网址(参见图 2),导航到要修改的变更。

示例变更链接: https://android-review.googlesource.com/c/platform/build/soong/+/1284176

变更涉及的文件会在修改窗格中打开(参见图 3)。

如果变更包含多个文件,每个文件将以标签页的形式显示在修改窗格上方的行中(参见图 4)。点击某个标签页即可在修改窗格中打开该文件。

进行修改

使用文本修改窗格来修改文件。您修改的文件会在修改窗格下方的“Pending changes”列表中显示。如果您无意中关闭了包含修改内容的文件对应的标签页,可以在“Pending changes”列表中点击文件名来重新打开包含完整修改内容的文件。

提交更改

您可以在 Git 源代码编辑器中创建变更并发布到 Gerrit。然后,您可以在 Gerrit 中跟踪对变更的审批情况。

创建和发布变更

按照此过程创建并发布您所做的变更。

  1. 点击相应按钮:

    • 如需创建新的变更,请点击 Create change
    • 如需更新现有变更,请点击 Update change

    系统会显示一个对话框。

    “Create Change”对话框

    图 5. “Create Change”对话框

  2. 输入对变更的说明,这将成为 Gerrit 中的变更说明。此说明为必填项。如果您修改的是现有变更,可以根据需要修改其说明。

  3. (可选)清除或选中 Publish on create 复选框。

    此复选框在默认情况下处于选中状态。

    如果您在创建变更时,此复选框为选中状态,变更会立即发布到 Gerrit。如果此复选框处于未选中状态,变更会上传到 Gerrit,但不会发布。

  4. 点击创建

    系统会将变更上传到 Gerrit。如果您选中了 Publish on create 复选框,变更也会在 Gerrit 中发布。屏幕顶部的通知中会显示变更的链接。

    关于已创建变更的通知

    图 6. 关于已创建变更的通知

在 Gerrit 中跟踪对变更的批准情况

与其他任何变更一样,您可以直接在 Gerrit 中跟踪变更的提交状态。

在 Gerrit 中跟踪变更的提交状态

图 7. 在 Gerrit 中跟踪变更的提交状态

查看文件差异

选中修改窗格下方的 Diff 复选框,即可查看您对修改窗格中当前文件所做修改的文件差异。这在更改文件和修改现有变更时很有用。

查看文件差异

图 8. 查看文件差异

还原文件

您可以还原对单个文件或待处理 CL 中所有文件所做的变更。这两个还原选项都只会还原 Git 源代码编辑器中的变更,而不会更新 Gerrit 中的变更。

还原单个文件

如需还原单个文件,请在“Pending changes”列表内,点击相应文件名旁边的 X

“Pending changes”部分

图 9. “Pending changes”部分

还原所有文件

如需一次性还原所有文件,请在修改窗格下方点击 Revert all files

“Revert all files”按钮

图 10. “Revert all files”按钮

系统会打开一个弹出式对话框。点击 Revert all 可还原所有待处理文件中的变更;点击 Cancel 可保留变更并继续进行修改。

“Revert all files”确认对话框

图 11. “Revert all files”确认对话框

您可以直接通过 Android 代码搜索在 Git 源代码编辑器中打开文件。如果您需要在修改文件之前先定位该文件,此功能将非常有用。

请按照以下步骤来直接通过 Android 代码搜索修改文件。

  1. 在 Android 代码搜索 (cs.android.com) 中,导航到您要修改的文件。

  2. 点击 Edit code

    Android 代码搜索“Edit code”按钮

    图 12. Android 代码搜索 Edit code 按钮

    系统随即会打开 Git 源代码编辑器,并已预先选中要修改的文件。

  3. Select a git branch 下拉列表中选择要修改的文件所在的 Git 分支,然后点击 Pick branch

    选择要修改的 Git 分支

    图 13. 选择要修改的 Git 分支

    系统会在修改窗格中打开文件。

  4. 按照进行修改部分中的说明继续修改。

  5. 您可以按照加载文件部分中的说明打开其他文件进行修改

解决冲突

若要解决冲突,请执行以下操作:

  1. 在源代码编辑器中,转到相应变更。加载变更后,冲突文件会列在屏幕底部。例如,图 14 显示 Android.pb 文件存在冲突。

    源代码编辑器冲突

    图 14. 源代码编辑器冲突

  2. 点击有冲突的文件。该文件会连续加载并在 Git 标记(<<<<<<<>>>>>>>)中显示存在冲突的内容块。

    冲突标记

    图 15. 源代码编辑器冲突标记

  3. 您可以通过修改文件并手动移除要保留的内容周围的冲突标记来解决冲突。此外,请移除您不想保留的内容和内容的冲突标记。

  4. 点击 Create Change 可创建新变更。此时将显示“Create Change”对话框。

    创建变更

    图 16. 创建变更

  5. 输入变更说明,然后点击 Create

发送反馈

使用右上角的 bug 按钮 bug 按钮图片 为 Git 源代码编辑器提供反馈。