aturan repositori git

Laporkan masalah Lihat sumber Per Malam · 7,3 · 7,2 · 7,1 · 7,0 · 6,5

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)

Clone repositori git eksternal.

Meng-clone repositori Git, memeriksa tag yang ditentukan, atau melakukan commit, dan membuat targetnya tersedia untuk binding. Tentukan juga ID commit yang sebenarnya di-check out dan tanggalnya, serta menampilkan dict dengan parameter yang menyediakan versi aturan ini yang dapat direproduksi (yang belum tentu merupakan ).

Pertama-tama, Bazel akan mencoba melakukan pengambilan dangkal hanya untuk commit yang ditentukan. Jika proses itu gagal (biasanya karena tidak adanya dukungan server), server akan kembali ke pengambilan repositori penuh.

Lebih suka http_archive daripada git_repository. Alasannya adalah:

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

Atribut

name Nama; wajib diisi

Nama unik untuk repositori ini.

branch String; opsional

di repositori jarak jauh untuk diperiksa. Salah satu cabang, tag, atau commit harus ditentukan.

build_file Label; opsional

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

build_file_content String; opsional

Konten untuk file BUILD untuk repositori ini.

commit String; opsional

atau commit tertentu yang harus diperiksa. Salah satu cabang, tag, atau commit harus ditentukan.

init_submodules Boolean; opsional

Apakah akan meng-clone submodul dalam repositori.

patch_args Daftar {i>string<i}; opsional

Argumen yang diberikan pada alat patch. Setelan defaultnya adalah -p0, tetapi -p1 biasanya akan diperlukan untuk patch yang dihasilkan oleh git. Jika beberapa argumen -p ditentukan, maka argumen yang terakhir akan diterapkan.Jika argumen selain -p ditentukan, Bazel akan kembali menggunakan alat baris perintah patch alih-alih implementasi patch bawaan Bazel. Saat kembali ke alat command line patch dan atribut patch_tool tidak ditentukan, `patch` akan digunakan.

patch_cmds Daftar {i>string<i}; opsional

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

patch_cmds_win Daftar {i>string<i}; opsional

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

patch_tool String; opsional

Utilitas patch(1) yang akan digunakan. Jika hal ini ditetapkan, Bazel akan menggunakan alat patch yang ditentukan, bukan implementasi patch asli Bazel.

patches Daftar label; opsional

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

recursive_init_submodules Boolean; opsional

Apakah akan meng-clone submodul secara rekursif dalam repositori.

remote String; wajib diisi

URI repositori Git jarak jauh

repo_mapping Kamus: String -> String; wajib diisi

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

Misalnya, entri `"@foo": "@bar"` mendeklarasikan bahwa, kapan pun repositori ini bergantung pada `@foo` (seperti dependensi pada `@foo//some:target`, dependensi tersebut harus benar-benar menyelesaikan 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 digandakan dengan --depth=1). Menetapkan tanggal yang dekat dengan commit yang ditentukan dapat memungkinkan clone dangkal repositori meskipun server tidak mendukung pengambilan dan commit arbitrer. Karena bug dalam implementasi git --shallow-since, penggunaan atribut ini tidak direkomendasikan karena dapat mengakibatkan kegagalan pengambilan.

strip_prefix String; opsional

Awalan direktori yang akan dihapus dari file yang diekstrak.

tag String; opsional

di repositori jarak jauh untuk diperiksa. Salah satu cabang, tag, atau commit 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)

Clone repositori git eksternal.

Meng-clone repositori Git, memeriksa tag yang ditentukan, atau melakukan commit, dan membuat targetnya tersedia untuk binding. Tentukan juga ID commit yang sebenarnya di-check out dan tanggalnya, serta menampilkan dict dengan parameter yang menyediakan versi aturan ini yang dapat direproduksi (yang belum tentu merupakan ).

Pertama-tama, Bazel akan mencoba melakukan pengambilan dangkal hanya untuk commit yang ditentukan. Jika proses itu gagal (biasanya karena tidak adanya dukungan server), server akan kembali ke pengambilan repositori penuh.

Lebih suka http_archive daripada git_repository. Alasannya adalah:

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

Atribut

name Nama; wajib diisi

Nama unik untuk repositori ini.

branch String; opsional

di repositori jarak jauh untuk diperiksa. Salah satu cabang, tag, atau commit harus ditentukan.

build_file Label; opsional

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

build_file_content String; opsional

Konten untuk file BUILD untuk repositori ini.

commit String; opsional

atau commit tertentu yang harus diperiksa. Salah satu cabang, tag, atau commit harus ditentukan.

init_submodules Boolean; opsional

Apakah akan meng-clone submodul dalam repositori.

patch_args Daftar {i>string<i}; opsional

Argumen yang diberikan pada alat patch. Setelan defaultnya adalah -p0, tetapi -p1 biasanya akan diperlukan untuk patch yang dihasilkan oleh git. Jika beberapa argumen -p ditentukan, maka argumen yang terakhir akan diterapkan.Jika argumen selain -p ditentukan, Bazel akan kembali menggunakan alat baris perintah patch alih-alih implementasi patch bawaan Bazel. Saat kembali ke alat command line patch dan atribut patch_tool tidak ditentukan, `patch` akan digunakan.

patch_cmds Daftar {i>string<i}; opsional

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

patch_cmds_win Daftar {i>string<i}; opsional

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

patch_tool String; opsional

Utilitas patch(1) yang akan digunakan. Jika hal ini ditetapkan, Bazel akan menggunakan alat patch yang ditentukan, bukan implementasi patch asli Bazel.

patches Daftar label; opsional

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

recursive_init_submodules Boolean; opsional

Apakah akan meng-clone submodul secara rekursif dalam repositori.

remote String; wajib diisi

URI repositori Git jarak jauh

repo_mapping Kamus: String -> String; wajib diisi

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

Misalnya, entri `"@foo": "@bar"` mendeklarasikan bahwa, kapan pun repositori ini bergantung pada `@foo` (seperti dependensi pada `@foo//some:target`, dependensi tersebut harus benar-benar menyelesaikan 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 digandakan dengan --depth=1). Menetapkan tanggal yang dekat dengan commit yang ditentukan dapat memungkinkan clone dangkal repositori meskipun server tidak mendukung pengambilan dan commit arbitrer. Karena bug dalam implementasi git --shallow-since, penggunaan atribut ini tidak direkomendasikan karena dapat mengakibatkan kegagalan pengambilan.

strip_prefix String; opsional

Awalan direktori yang akan dihapus dari file yang diekstrak.

tag String; opsional

di repositori jarak jauh untuk diperiksa. Salah satu cabang, tag, atau commit 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.