Git 存放區規則

回報問題 查看原始碼 。 。 。 。 夜間7.3 。 。 7.2 。 。 7.1 。 。 7.0 。 。 6.5

您可從下列函式載入下列函式: @bazel_tools//tools/build_defs/repo:git.bzl

複製外部 Git 存放區的規則。

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,
               repo_mapping, shallow_since, strip_prefix, tag, verbose, workspace_file,
               workspace_file_content)

複製外部 Git 存放區。

複製 Git 存放區、查看指定的標記或修訂版本,以及 讓其目標可用於繫結同時決定 確認已登出的修訂版本及其日期,然後傳回具有參數的字典 提供了這項規則的可重現版本 (代碼不一定 )。

Bazel 會先嘗試僅針對指定的修訂版本執行淺層擷取作業。 如果失敗了 (通常是因為缺少伺服器支援),就會改回使用 完整擷取存放區

使用 http_archive 呼叫 git_repository。 原因如下:

  • Git 存放區規則依附於系統 git(1),HTTP 下載工具則是建立 且沒有系統依附元件。
  • http_archive 支援 urls 清單做為鏡像,而 git_repository 僅支援 單一 remote
  • http_archive 可使用存放區快取,但不支援 git_repository。詳情請見 #5116

屬性

name 名稱;必選

這個存放區的專屬名稱。

branch String;選用

查看遠端存放區中的分支版本必須精確指定分支版本、標記或修訂版本。

build_file 標籤;選用

要做為這個存放區 BUILD 檔案的檔案。這個屬性是絕對標籤 (主要存放區使用「@//」)。這個檔案不必命名為 BUILD,但可以是 (BUILD.new-repo-name 這樣的名稱,有助於區分檔案與存放區的實際 BUILD 檔案)。

build_file_content String;選用

這個存放區的 BUILD 檔案內容。

commit String;選用

需要瞭解的具體修訂版本必須精確指定分支版本、標記或修訂版本。

init_submodules 布林值;選用

是否複製存放區中的子模組。

patch_args 字串清單;選用

提供給修補工具的引數。預設為 -p0,但 Git 產生的修補程式通常需要 -p1。如果指定多個 -p 引數,最後一個引數將會生效。如果指定 -p 以外的引數,Bazel 將改回使用修補程式指令列工具,而不是使用 Bazel 原生修補程式實作。改回使用修補程式指令列工具和 patch_tool 屬性時,系統會使用「patch」。

patch_cmds 字串清單;選用

套用修補程式後,要套用到 Linux/Macos 的 Bash 指令序列。

patch_cmds_win 字串清單;選用

套用修補程式後,要在 Windows 上套用的 Powershell 指令序列。如未設定此屬性,patch_cmds 會在 Windows 上執行,而需要 Bash 二進位檔。

patch_tool String;選用

要使用的修補程式(1) 公用程式。如有指定,Bazel 會使用指定的修補程式工具,而非 Bazel 原生的修補程式實作。

patches 標籤清單;選用

擷取封存檔案後,要套用為修補程式的檔案清單。根據預設,它會使用不支援模糊比對和二進位修補程式的 Bazel 原生修補程式實作項目,但如果已指定「patch_tool」屬性,或是在「patch_args」屬性中含有「-p」以外的引數,Bazel 就會改用修補程式指令列工具。

recursive_init_submodules 布林值;選用

是否以遞迴方式複製存放區中的子模組。

remote String;必選

遠端 Git 存放區的 URI

repo_mapping 字典:字串 ->String;必選

從本機存放區名稱到全域存放區名稱的字典。如此一來,即可控管這個存放區的依附元件的工作區依附元件解決方案。

舉例來說,項目 `"@foo": "@bar"` 會在任何時候這個存放區依附於 `@foo` (例如 `@foo//some:target` 上的依附元件),實際上應在全域宣告的 `@bar` (`@bar//some:target`) 中解析該依附元件。

shallow_since String;選用

選用日期,而非指定修訂版本後的日期;如果已指定標記或分支版本 (一律可使用 --depth=1 複製),則不得使用引數。即使伺服器不支援任意修訂版本的淺層擷取作業,將此日期設為接近指定的修訂版本,或許仍可允許存放區的淺層副本。由於 git 的 --shallow-since 實作發生錯誤,因此不建議使用這項屬性,因為可能會導致擷取失敗。

strip_prefix String;選用

要從已擷取檔案中移除的目錄前置字串。

tag String;選用

遠端存放區中的標記進行結帳。必須精確指定分支版本、標記或修訂版本。

verbose 布林值;選用
workspace_file 標籤;選用

要做為這個存放區「WORKSPACE」檔案使用的檔案。只能指定「workspace_file」或「workspace_file_content」的值,但兩者只能擇一。

workspace_file_content String;選用

這個存放區的 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, repo_mapping, shallow_since, strip_prefix, tag,
                   verbose, workspace_file, workspace_file_content)

複製外部 Git 存放區。

複製 Git 存放區、查看指定的標記或修訂版本,以及 讓其目標可用於繫結同時決定 確認已登出的修訂版本及其日期,然後傳回具有參數的字典 提供了這項規則的可重現版本 (代碼不一定 )。

Bazel 會先嘗試僅針對指定的修訂版本執行淺層擷取作業。 如果失敗了 (通常是因為缺少伺服器支援),就會改回使用 完整擷取存放區

使用 http_archive 呼叫 git_repository。 原因如下:

  • Git 存放區規則依附於系統 git(1),HTTP 下載工具則是建立 且沒有系統依附元件。
  • http_archive 支援 urls 清單做為鏡像,而 git_repository 僅支援 單一 remote
  • http_archive 可使用存放區快取,但不支援 git_repository。詳情請見 #5116

屬性

name 名稱;必選

這個存放區的專屬名稱。

branch String;選用

查看遠端存放區中的分支版本必須精確指定分支版本、標記或修訂版本。

build_file 標籤;選用

要做為這個存放區 BUILD 檔案的檔案。這個屬性是絕對標籤 (主要存放區使用「@//」)。這個檔案不必命名為 BUILD,但可以是 (BUILD.new-repo-name 這樣的名稱,有助於區分檔案與存放區的實際 BUILD 檔案)。

build_file_content String;選用

這個存放區的 BUILD 檔案內容。

commit String;選用

需要瞭解的具體修訂版本必須精確指定分支版本、標記或修訂版本。

init_submodules 布林值;選用

是否複製存放區中的子模組。

patch_args 字串清單;選用

提供給修補工具的引數。預設為 -p0,但 Git 產生的修補程式通常需要 -p1。如果指定多個 -p 引數,最後一個引數將會生效。如果指定 -p 以外的引數,Bazel 將改回使用修補程式指令列工具,而不是使用 Bazel 原生修補程式實作。改回使用修補程式指令列工具和 patch_tool 屬性時,系統會使用「patch」。

patch_cmds 字串清單;選用

套用修補程式後,要套用到 Linux/Macos 的 Bash 指令序列。

patch_cmds_win 字串清單;選用

套用修補程式後,要在 Windows 上套用的 Powershell 指令序列。如未設定此屬性,patch_cmds 會在 Windows 上執行,而需要 Bash 二進位檔。

patch_tool String;選用

要使用的修補程式(1) 公用程式。如有指定,Bazel 會使用指定的修補程式工具,而非 Bazel 原生的修補程式實作。

patches 標籤清單;選用

擷取封存檔案後,要套用為修補程式的檔案清單。根據預設,它會使用不支援模糊比對和二進位修補程式的 Bazel 原生修補程式實作項目,但如果已指定「patch_tool」屬性,或是在「patch_args」屬性中含有「-p」以外的引數,Bazel 就會改用修補程式指令列工具。

recursive_init_submodules 布林值;選用

是否以遞迴方式複製存放區中的子模組。

remote String;必選

遠端 Git 存放區的 URI

repo_mapping 字典:字串 ->String;必選

從本機存放區名稱到全域存放區名稱的字典。如此一來,即可控管這個存放區的依附元件的工作區依附元件解決方案。

舉例來說,項目 `"@foo": "@bar"` 會在任何時候這個存放區依附於 `@foo` (例如 `@foo//some:target` 上的依附元件),實際上應在全域宣告的 `@bar` (`@bar//some:target`) 中解析該依附元件。

shallow_since String;選用

選用日期,而非指定修訂版本後的日期;如果已指定標記或分支版本 (一律可使用 --depth=1 複製),則不得使用引數。即使伺服器不支援任意修訂版本的淺層擷取作業,將此日期設為接近指定的修訂版本,或許仍可允許存放區的淺層副本。由於 git 的 --shallow-since 實作發生錯誤,因此不建議使用這項屬性,因為可能會導致擷取失敗。

strip_prefix String;選用

要從已擷取檔案中移除的目錄前置字串。

tag String;選用

遠端存放區中的標記進行結帳。必須精確指定分支版本、標記或修訂版本。

verbose 布林值;選用
workspace_file 標籤;選用

要做為這個存放區「WORKSPACE」檔案使用的檔案。只能指定「workspace_file」或「workspace_file_content」的值,但兩者只能擇一。

workspace_file_content String;選用

這個存放區的 WORKSPACE 檔案內容。只能指定「workspace_file」或「workspace_file_content」的值,但兩者只能擇一。