Git 代码库规则

报告问题 查看源代码 每夜 build · 8.0 7.4 . 7.3 · 7.2 · 7.1 · 7.0 · 6.5

可以从 @bazel_tools//tools/build_defs/repo:git.bzl 加载以下函数。

git_repository

git_repository(name, branch, build_file, build_file_content, commit, init_submodules, patch_args,
               patch_cmds, patch_cmds_win, patch_tool, patches, recursive_init_submodules, remote,
               shallow_since, strip_prefix, tag, verbose, workspace_file, workspace_file_content)

克隆外部 Git 代码库。

克隆 Git 代码库,检出指定的标记或提交,并使其目标可供绑定。此外,还要确定实际签出的提交 ID 及其日期,并返回一个字典,其中包含用于提供此规则的可重现版本(而代码可能不是)的参数。

属性

name 名称;必需

此代码库的唯一名称。

branch 字符串;可选

要签出的远程代码库中的分支。必须指定分支、标记或提交中的一个(且只能指定其中一个)。

build_file 标签;可选

要用作此代码库的 BUILD 文件的文件。此属性是绝对标签(对于主代码库,请使用“@//”)。该文件不必命名为 BUILD,但可以这样命名(例如 BUILD.new-repo-name 可能很适合用于将其与代码库的实际 BUILD 文件区分开来。必须指定 build_file 或 build_file_content。

build_file_content 字符串;可选

此代码库的 BUILD 文件的内容。必须指定 build_file 或 build_file_content。

commit 字符串;可选

要检出的特定提交。必须指定分支、标记或提交中的一个(且只能指定其中一个)。

init_submodules 布尔值;可选

是否克隆代码库中的子模块。

patch_args 字符串列表;可选

给补丁工具的参数。默认为 -p0,但通常需要为 git 生成的补丁使用 -p1。如果指定了多个 -p 参数,则最后一个参数将生效。如果指定了 -p 以外的参数,Bazel 将回退使用 patch 命令行工具,而不是使用原生 Bazel 补丁实现。当回退到补丁命令行工具且未指定 patch_tool 属性时,系统将使用 `patch`。

patch_cmds 字符串列表;可选

在应用补丁后,要在 Linux/Macos 上应用的 Bash 命令序列。

patch_cmds_win 字符串列表;可选

在应用补丁后,要在 Windows 上应用的一系列 PowerShell 命令。如果未设置此属性,patch_cmds 将在 Windows 上执行,这需要 Bash 二进制文件存在。

patch_tool 字符串;可选

要使用的 patch(1) 实用程序。如果指定了此参数,Bazel 将使用指定的补丁工具,而不是 Bazel 原生补丁实现。

patches 标签列表;可选

解压缩归档文件后要作为补丁应用的文件列表。默认情况下,它使用不支持模糊匹配和二进制补丁的 Bazel 原生补丁实现,但如果指定了 `patch_tool` 属性或 `patch_args` 属性中存在 `-p` 以外的参数,则 Bazel 会回退使用补丁命令行工具。

recursive_init_submodules 布尔值;可选

是否在代码库中递归克隆子模块。

remote 字符串;必需

远程 Git 代码库的 URI

shallow_since 字符串;可选

可选日期,不得晚于指定提交;如果指定了标记(允许深度为 1 的克隆),则不允许使用此参数。设置接近指定提交日期的日期可让存储库的克隆更浅,从而节省带宽和实际时间。

strip_prefix 字符串;可选

要从解压缩的文件中剥离的目录前缀。

tag 字符串;可选

标记以进行检出。必须指定分支、标记或提交中的一个(且只能指定其中一个)。

verbose 布尔值;可选
workspace_file 标签;可选

要用作此代码库的 `WORKSPACE` 文件的文件。可以指定 `workspace_file` 或 `workspace_file_content`,也可以不指定这两者,但不能同时指定这两者。

workspace_file_content 字符串;可选

此代码库的 WORKSPACE 文件的内容。可以指定 `workspace_file` 或 `workspace_file_content`,也可以不指定这两者,但不能同时指定这两者。

new_git_repository

new_git_repository(name, branch, build_file, build_file_content, commit, init_submodules,
                   patch_args, patch_cmds, patch_cmds_win, patch_tool, patches,
                   recursive_init_submodules, remote, shallow_since, strip_prefix, tag, verbose,
                   workspace_file, workspace_file_content)

克隆外部 Git 代码库。

克隆 Git 代码库,检出指定的标记或提交,并使其目标可供绑定。此外,还要确定实际签出的提交 ID 及其日期,并返回一个字典,其中包含用于提供此规则的可重现版本(而代码可能不是)的参数。

属性

name 名称;必需

此代码库的唯一名称。

branch 字符串;可选

要签出的远程代码库中的分支。必须指定分支、标记或提交中的一个(且只能指定其中一个)。

build_file 标签;可选

要用作此代码库的 BUILD 文件的文件。此属性是绝对标签(对于主代码库,请使用“@//”)。该文件不必命名为 BUILD,但可以这样命名(例如 BUILD.new-repo-name 可能很适合用于将其与代码库的实际 BUILD 文件区分开来。必须指定 build_file 或 build_file_content。

build_file_content 字符串;可选

此代码库的 BUILD 文件的内容。必须指定 build_file 或 build_file_content。

commit 字符串;可选

要检出的特定提交。必须指定分支、标记或提交中的一个(且只能指定其中一个)。

init_submodules 布尔值;可选

是否克隆代码库中的子模块。

patch_args 字符串列表;可选

给补丁工具的参数。默认为 -p0,但通常需要为 git 生成的补丁使用 -p1。如果指定了多个 -p 参数,则最后一个参数将生效。如果指定了 -p 以外的参数,Bazel 将回退使用 patch 命令行工具,而不是使用原生 Bazel 补丁实现。当回退到补丁命令行工具且未指定 patch_tool 属性时,系统将使用 `patch`。

patch_cmds 字符串列表;可选

在应用补丁后,要在 Linux/Macos 上应用的 Bash 命令序列。

patch_cmds_win 字符串列表;可选

在应用补丁后,要在 Windows 上应用的一系列 PowerShell 命令。如果未设置此属性,patch_cmds 将在 Windows 上执行,这需要 Bash 二进制文件存在。

patch_tool 字符串;可选

要使用的 patch(1) 实用程序。如果指定了此参数,Bazel 将使用指定的补丁工具,而不是 Bazel 原生补丁实现。

patches 标签列表;可选

解压缩归档文件后要作为补丁应用的文件列表。默认情况下,它使用不支持模糊匹配和二进制补丁的 Bazel 原生补丁实现,但如果指定了 `patch_tool` 属性或 `patch_args` 属性中存在 `-p` 以外的参数,则 Bazel 会回退使用补丁命令行工具。

recursive_init_submodules 布尔值;可选

是否在代码库中递归克隆子模块。

remote 字符串;必需

远程 Git 代码库的 URI

shallow_since 字符串;可选

可选日期,不得晚于指定提交;如果指定了标记(允许深度为 1 的克隆),则不允许使用此参数。设置接近指定提交日期的日期可让存储库的克隆更浅,从而节省带宽和实际时间。

strip_prefix 字符串;可选

要从解压缩的文件中剥离的目录前缀。

tag 字符串;可选

标记以进行检出。必须指定分支、标记或提交中的一个(且只能指定其中一个)。

verbose 布尔值;可选
workspace_file 标签;可选

要用作此代码库的 `WORKSPACE` 文件的文件。可以指定 `workspace_file` 或 `workspace_file_content`,也可以不指定这两者,但不能同时指定这两者。

workspace_file_content 字符串;可选

此代码库的 WORKSPACE 文件的内容。可以指定 `workspace_file` 或 `workspace_file_content`,也可以不指定这两者,但不能同时指定这两者。