aturan repositori git

Fungsi berikut dapat dimuat dari @bazel_tools//tools/build_defs/repo:git.bzl.

Aturan untuk meng-clone repositori git eksternal.

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)

Meng-clone repositori git eksternal.

Meng-clone repositori Git, memeriksa tag atau commit yang ditentukan, dan membuat targetnya tersedia untuk binding. Tentukan juga ID commit yang benar-benar diambil dan tanggalnya, serta tampilkan dict dengan parameter yang memberikan versi aturan ini yang dapat direproduksi (yang tidak selalu berupa tag).

Bazel akan mencoba melakukan pengambilan dangkal hanya untuk commit yang ditentukan terlebih dahulu. Jika gagal (biasanya karena dukungan server tidak ada), tindakan ini akan kembali ke pengambilan repositori penuh.

Lebih memilih http_archive daripada git_repository. Alasannya adalah:

  • Aturan repositori Git bergantung pada git(1) sistem, sedangkan downloader HTTP di-build ke dalam Bazel dan tidak memiliki dependensi sistem.
  • http_archive mendukung daftar urls sebagai mirror, dan git_repository hanya mendukung satu remote.
  • http_archive berfungsi dengan cache repositori, tetapi tidak git_repository. Lihat #5116 untuk mengetahui informasi selengkapnya.

Atribut

name Nama; wajib

Nama unik untuk repositori ini.

branch String; opsional

cabang di repositori jarak jauh yang akan diperiksa. Hanya satu dari cabang, tag, atau commit yang harus ditentukan.

build_file Label; opsional

File yang akan digunakan sebagai file BUILD untuk repositori ini.Atribut ini adalah label absolut (gunakan '@//' untuk repo utama). File tidak perlu diberi nama BUILD, tetapi dapat diberi nama (seperti BUILD.new-repo-name mungkin berfungsi dengan baik untuk membedakannya dari file BUILD sebenarnya di repositori.

build_file_content String; opsional

Konten untuk file BUILD untuk repositori ini.

commit String; opsional

commit tertentu yang akan diperiksa. Hanya satu dari cabang, tag, atau commit yang harus ditentukan.

init_submodules Boolean; opsional

Apakah akan meng-clone submodul di repositori.

patch_args Daftar string; opsional

Argumen yang diberikan ke alat patch. Default-nya adalah -p0, tetapi -p1 biasanya diperlukan untuk patch yang dibuat oleh git. Jika beberapa argumen -p ditentukan, argumen terakhir akan diterapkan.Jika argumen selain -p ditentukan, Bazel akan kembali menggunakan alat command line patch, bukan implementasi patch native Bazel. Jika kembali ke alat command line patch dan atribut patch_tool tidak ditentukan, `patch` akan digunakan.

patch_cmds Daftar string; opsional

Urutan perintah Bash yang akan diterapkan di Linux/Macos setelah patch diterapkan.

patch_cmds_win Daftar string; opsional

Urutan perintah Powershell yang akan diterapkan di Windows setelah patch diterapkan. Jika atribut ini tidak ditetapkan, patch_cmds akan dieksekusi di Windows, yang memerlukan biner Bash.

patch_tool String; opsional

Utilitas patch(1) yang akan digunakan. Jika ditentukan, Bazel akan menggunakan alat patch yang ditentukan, bukan implementasi patch native Bazel.

patches Daftar label; opsional

Daftar file yang akan diterapkan sebagai patch setelah mengekstrak arsip. Secara default, alat ini menggunakan implementasi patch native Bazel yang tidak mendukung kecocokan fuzz dan patch biner, tetapi Bazel akan kembali menggunakan alat command line patch jika atribut `patch_tool` ditentukan atau ada argumen selain `-p` di atribut `patch_args`.

recursive_init_submodules Boolean; opsional

Apakah akan meng-clone submodul secara rekursif di repositori.

remote String; wajib

URI repositori Git jarak jauh

repo_mapping Kamus: String -> String; wajib

Kamus dari nama repositori lokal ke nama repositori global. Hal ini memungkinkan kontrol atas resolusi dependensi ruang kerja untuk dependensi repositori ini.

Misalnya, entri `"@foo": "@bar"` mendeklarasikan bahwa, setiap kali repositori ini bergantung pada `@foo` (seperti dependensi pada `@foo//some:target`, repositori ini sebenarnya harus me-resolve dependensi tersebut dalam `@bar` yang dideklarasikan secara global (`@bar//some:target`).

shallow_since String; opsional

tanggal opsional, bukan setelah commit yang ditentukan; argumen tidak diizinkan jika tag atau cabang ditentukan (yang selalu dapat di-clone dengan --depth=1). Menetapkan tanggal tersebut mendekati commit yang ditentukan dapat memungkinkan cloning repositori dangkal meskipun server tidak mendukung pengambilan dangkal commit arbitrer. Karena bug dalam penerapan --shallow-since git, penggunaan atribut ini tidak direkomendasikan karena dapat menyebabkan kegagalan pengambilan.

strip_prefix String; opsional

Awalan direktori yang akan dihapus dari file yang diekstrak.

tag String; opsional

tag di repositori jarak jauh yang akan diperiksa. Hanya satu dari cabang, tag, atau commit yang harus ditentukan.

verbose Boolean; opsional
workspace_file Label; opsional

File yang akan digunakan sebagai file `WORKSPACE` untuk repositori ini. `workspace_file` atau `workspace_file_content` dapat ditentukan, atau tidak keduanya, tetapi tidak keduanya.

workspace_file_content String; opsional

Konten untuk file WORKSPACE untuk repositori ini. `workspace_file` atau `workspace_file_content` dapat ditentukan, atau tidak keduanya, tetapi tidak keduanya.

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)

Meng-clone repositori git eksternal.

Meng-clone repositori Git, memeriksa tag atau commit yang ditentukan, dan membuat targetnya tersedia untuk binding. Tentukan juga ID commit yang benar-benar diambil dan tanggalnya, serta tampilkan dict dengan parameter yang memberikan versi aturan ini yang dapat direproduksi (yang tidak selalu berupa tag).

Bazel akan mencoba melakukan pengambilan dangkal hanya untuk commit yang ditentukan terlebih dahulu. Jika gagal (biasanya karena dukungan server tidak ada), tindakan ini akan kembali ke pengambilan repositori penuh.

Lebih memilih http_archive daripada git_repository. Alasannya adalah:

  • Aturan repositori Git bergantung pada git(1) sistem, sedangkan downloader HTTP di-build ke dalam Bazel dan tidak memiliki dependensi sistem.
  • http_archive mendukung daftar urls sebagai mirror, dan git_repository hanya mendukung satu remote.
  • http_archive berfungsi dengan cache repositori, tetapi tidak git_repository. Lihat #5116 untuk mengetahui informasi selengkapnya.

Atribut

name Nama; wajib

Nama unik untuk repositori ini.

branch String; opsional

cabang di repositori jarak jauh yang akan diperiksa. Hanya satu dari cabang, tag, atau commit yang harus ditentukan.

build_file Label; opsional

File yang akan digunakan sebagai file BUILD untuk repositori ini.Atribut ini adalah label absolut (gunakan '@//' untuk repo utama). File tidak perlu diberi nama BUILD, tetapi dapat diberi nama (seperti BUILD.new-repo-name mungkin berfungsi dengan baik untuk membedakannya dari file BUILD sebenarnya di repositori.

build_file_content String; opsional

Konten untuk file BUILD untuk repositori ini.

commit String; opsional

commit tertentu yang akan diperiksa. Hanya satu dari cabang, tag, atau commit yang harus ditentukan.

init_submodules Boolean; opsional

Apakah akan meng-clone submodul di repositori.

patch_args Daftar string; opsional

Argumen yang diberikan ke alat patch. Default-nya adalah -p0, tetapi -p1 biasanya diperlukan untuk patch yang dibuat oleh git. Jika beberapa argumen -p ditentukan, argumen terakhir akan diterapkan.Jika argumen selain -p ditentukan, Bazel akan kembali menggunakan alat command line patch, bukan implementasi patch native Bazel. Jika kembali ke alat command line patch dan atribut patch_tool tidak ditentukan, `patch` akan digunakan.

patch_cmds Daftar string; opsional

Urutan perintah Bash yang akan diterapkan di Linux/Macos setelah patch diterapkan.

patch_cmds_win Daftar string; opsional

Urutan perintah Powershell yang akan diterapkan di Windows setelah patch diterapkan. Jika atribut ini tidak ditetapkan, patch_cmds akan dieksekusi di Windows, yang memerlukan biner Bash.

patch_tool String; opsional

Utilitas patch(1) yang akan digunakan. Jika ditentukan, Bazel akan menggunakan alat patch yang ditentukan, bukan implementasi patch native Bazel.

patches Daftar label; opsional

Daftar file yang akan diterapkan sebagai patch setelah mengekstrak arsip. Secara default, alat ini menggunakan implementasi patch native Bazel yang tidak mendukung kecocokan fuzz dan patch biner, tetapi Bazel akan kembali menggunakan alat command line patch jika atribut `patch_tool` ditentukan atau ada argumen selain `-p` di atribut `patch_args`.

recursive_init_submodules Boolean; opsional

Apakah akan meng-clone submodul secara rekursif di repositori.

remote String; wajib

URI repositori Git jarak jauh

repo_mapping Kamus: String -> String; wajib

Kamus dari nama repositori lokal ke nama repositori global. Hal ini memungkinkan kontrol atas resolusi dependensi ruang kerja untuk dependensi repositori ini.

Misalnya, entri `"@foo": "@bar"` mendeklarasikan bahwa, setiap kali repositori ini bergantung pada `@foo` (seperti dependensi pada `@foo//some:target`, repositori ini sebenarnya harus me-resolve dependensi tersebut dalam `@bar` yang dideklarasikan secara global (`@bar//some:target`).

shallow_since String; opsional

tanggal opsional, bukan setelah commit yang ditentukan; argumen tidak diizinkan jika tag atau cabang ditentukan (yang selalu dapat di-clone dengan --depth=1). Menetapkan tanggal tersebut mendekati commit yang ditentukan dapat memungkinkan cloning repositori dangkal meskipun server tidak mendukung pengambilan dangkal commit arbitrer. Karena bug dalam penerapan --shallow-since git, penggunaan atribut ini tidak direkomendasikan karena dapat menyebabkan kegagalan pengambilan.

strip_prefix String; opsional

Awalan direktori yang akan dihapus dari file yang diekstrak.

tag String; opsional

tag di repositori jarak jauh yang akan diperiksa. Hanya satu dari cabang, tag, atau commit yang harus ditentukan.

verbose Boolean; opsional
workspace_file Label; opsional

File yang akan digunakan sebagai file `WORKSPACE` untuk repositori ini. `workspace_file` atau `workspace_file_content` dapat ditentukan, atau tidak keduanya, tetapi tidak keduanya.

workspace_file_content String; opsional

Konten untuk file WORKSPACE untuk repositori ini. `workspace_file` atau `workspace_file_content` dapat ditentukan, atau tidak keduanya, tetapi tidak keduanya.