Aşağıdaki işlevler @bazel_tools//tools/build_defs/repo:git.bzl
konumundan yüklenebilir.
Harici Git depolarını klonlama kuralları.
git_repository
load("@bazel//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_strip, patch_tool, patches, recursive_init_submodules, remote, repo_mapping, shallow_since, strip_prefix, tag, verbose, workspace_file, workspace_file_content)
Harici bir Git deposunu klonlayın.
Bir Git deposunu klonlar, belirtilen etiketi veya taahhüdü kontrol eder ve hedeflerini bağlama için kullanılabilir hale getirir. Ayrıca, gerçekten kullanıma sunulan taahhüdün kimliğini ve tarihini belirleyin ve bu kuralın yeniden üretilebilir bir sürümünü sağlayan parametrelerle (etiket zorunlu değildir) bir sözlük döndürün.
Bazel, önce yalnızca belirtilen taahhüdün yüzeysel bir şekilde getirilmesini deneyecek. Bu işlem başarısız olursa (genellikle sunucu desteğinin olmaması nedeniyle) depoda tam getirme işlemine geri dönülür.
git_repository
yerine http_archive
tercih edilir.
Bunun nedenleri şunlardır:
- Git deposu kuralları sistem
git(1)
'ya bağlıdır. HTTP indirici ise Bazel'e yerleştirilmiştir ve sistem bağımlılığı yoktur. http_archive
, yansıtma olarakurls
listesini destekler.git_repository
ise yalnızca tek birremote
'ü destekler.http_archive
, depo önbelleği ile çalışır ancakgit_repository
ile çalışmaz. Daha fazla bilgi için #5116 numaralı makaleyi inceleyin.
ÖZELLİKLER
name |
Ad; zorunlu
Bu depo için benzersiz bir ad. |
branch |
Dize; isteğe bağlı
uzak depodaki dalı kontrol etmeniz gerekir. Branch, tag veya commit'ten tam olarak biri belirtilmelidir. |
build_file |
Etiket; isteğe bağlı
Bu depo için BUILD dosyası olarak kullanılacak dosya.Bu özellik mutlak bir etikettir (ana depo için "@//" kullanın). Dosyanın BUILD olarak adlandırılması gerekmez ancak adlandırılabilir (örneğin, BUILD.new-repo-name, dosyayı, depodaki asıl BUILD dosyalarından ayırt etmek için iyi bir seçenek olabilir). |
build_file_content |
Dize; isteğe bağlı
Bu depo için BUILD dosyasının içeriği. |
commit |
Dize; isteğe bağlı
belirli bir commit'i kullanmak için. Branch, tag veya commit'ten tam olarak biri belirtilmelidir. |
init_submodules |
Boole; isteğe bağlı
Depodaki alt modüllerin klonlanıp klonlanmayacağı. |
patch_args |
Dize listesi; isteğe bağlı
Yama aracına verilen bağımsız değişkenler. Varsayılan olarak -p0'dır (bkz. "patch_strip" özelliği). Ancak git tarafından oluşturulan yamalar için genellikle -p1 gerekir. Birden fazla -p bağımsız değişkeni belirtilirse sonuncusu geçerli olur. -p dışındaki bağımsız değişkenler belirtilirse Bazel, Bazel'e özgü yama uygulaması yerine yama komut satırı aracını kullanmaya geri döner. Yama komut satırı aracına geri dönüldüğünde ve patch_tool özelliği belirtilmediğinde "patch" kullanılır. |
patch_cmds |
Dize listesi; isteğe bağlı
Yamalar uygulandıktan sonra Linux/MacOS'te uygulanacak Bash komutlarının sırası. |
patch_cmds_win |
Dize listesi; isteğe bağlı
Düzeltme ekleri uygulandıktan sonra Windows'da uygulanacak PowerShell komutlarının sırası. Bu özellik ayarlanmazsa patch_cmds, Windows'da yürütülür. Bu işlem için Bash ikilisinin bulunması gerekir. |
patch_strip |
Tam sayı; isteğe bağlı
Bu değer "N" olarak ayarlandığında, `patch_args` değerinin başına `-pN` eklenmesiyle aynı etkiye sahiptir. |
patch_tool |
Dize; isteğe bağlı
Kullanılacak patch(1) yardımcı programı. Bu belirtilirse Bazel, Bazel'e özgü yama uygulaması yerine belirtilen yama aracını kullanır. |
patches |
Etiket listesi; isteğe bağlı
Arşiv ayıklandıktan sonra yama olarak uygulanacak dosyaların listesi. Varsayılan olarak, yaklaşık eşleşmeyi ve ikili yamayı desteklemeyen Bazel'e özgü yama uygulaması kullanılır. Ancak Bazel, `patch_tool` özelliği belirtilmişse veya `patch_args` özelliğinde `-p` dışında bağımsız değişkenler varsa yama komut satırı aracını kullanmaya geri döner. |
recursive_init_submodules |
Boole; isteğe bağlı
Alt modüllerin depoda yinelemeli olarak klonlanıp klonlanmayacağı. |
remote |
Dize; zorunlu
Uzak Git deposunun URI'si |
repo_mapping |
Sözlük: Dize -> Dize; isteğe bağlı
Yalnızca "WORKSPACE" bağlamında: Yerel depo adından genel depo adına kadar olan bir sözlük. Bu, bu deponun bağımlılıkları için çalışma alanı bağımlılık çözümlemesi üzerinde kontrol sağlar. Örneğin, `"@foo": "@bar"` girişi, bu deponun `@foo` öğesine bağlı olduğu her durumda (ör. `@foo//some:target` öğesine bağımlılık) bu bağımlılığı aslında genel olarak tanımlanmış `@bar` içinde (`@bar//some:target`) çözmesi gerektiğini belirtir. Bu özellik, `MODULE.bazel` bağlamında (bir modül uzantısının uygulama işlevi içinde bir depo kuralı çağrılırken) _desteklenmez_. |
shallow_since |
Dize; isteğe bağlı
Belirtilen commit'ten sonra olmayan isteğe bağlı bir tarih; bir etiket veya dal belirtilmişse bağımsız değişkene izin verilmez (bu, her zaman --depth=1 ile klonlanabilir). Böyle bir tarihi belirtilen taahhüde yakın bir tarihe ayarlamak, sunucu rastgele taahhütlerin sığ getirilmesini desteklemese bile deponun sığ bir şekilde klonlanmasına olanak tanıyabilir. Git'in --shallow-since uygulamasındaki hatalar nedeniyle, bu özelliğin kullanılması getirme hatalarına yol açabileceğinden önerilmez. |
strip_prefix |
Dize; isteğe bağlı
Çıkarılan dosyalardan kaldırılacak bir dizin öneki. |
tag |
Dize; isteğe bağlı
etiketi, uzak depoda kullanıma alınır. Branch, tag veya commit'ten tam olarak biri belirtilmelidir. |
verbose |
Boole; isteğe bağlı |
workspace_file |
Etiket; isteğe bağlı
Bu depo için "WORKSPACE" dosyası olarak kullanılacak dosya. `workspace_file` veya `workspace_file_content` belirtilebilir ya da ikisi de belirtilmeyebilir ancak ikisi birden belirtilemez. |
workspace_file_content |
Dize; isteğe bağlı
Bu depo için WORKSPACE dosyasının içeriği. `workspace_file` veya `workspace_file_content` belirtilebilir ya da ikisi de belirtilmeyebilir ancak ikisi birden belirtilemez. |
new_git_repository
load("@bazel//tools/build_defs/repo:git.bzl", "new_git_repository") new_git_repository(name, branch, build_file, build_file_content, commit, init_submodules, patch_args, patch_cmds, patch_cmds_win, patch_strip, patch_tool, patches, recursive_init_submodules, remote, repo_mapping, shallow_since, strip_prefix, tag, verbose, workspace_file, workspace_file_content)
Harici bir Git deposunu klonlayın.
Bir Git deposunu klonlar, belirtilen etiketi veya taahhüdü kontrol eder ve hedeflerini bağlama için kullanılabilir hale getirir. Ayrıca, gerçekten kullanıma sunulan taahhüdün kimliğini ve tarihini belirleyin ve bu kuralın yeniden üretilebilir bir sürümünü sağlayan parametrelerle (etiket zorunlu değildir) bir sözlük döndürün.
Bazel, önce yalnızca belirtilen taahhüdün yüzeysel bir şekilde getirilmesini deneyecek. Bu işlem başarısız olursa (genellikle sunucu desteğinin olmaması nedeniyle) depoda tam getirme işlemine geri dönülür.
git_repository
yerine http_archive
tercih edilir.
Bunun nedenleri şunlardır:
- Git deposu kuralları sistem
git(1)
'ya bağlıdır. HTTP indirici ise Bazel'e yerleştirilmiştir ve sistem bağımlılığı yoktur. http_archive
, yansıtma olarakurls
listesini destekler.git_repository
ise yalnızca tek birremote
'ü destekler.http_archive
, depo önbelleği ile çalışır ancakgit_repository
ile çalışmaz. Daha fazla bilgi için #5116 numaralı makaleyi inceleyin.
ÖZELLİKLER
name |
Ad; zorunlu
Bu depo için benzersiz bir ad. |
branch |
Dize; isteğe bağlı
uzak depodaki dalı kontrol etmeniz gerekir. Branch, tag veya commit'ten tam olarak biri belirtilmelidir. |
build_file |
Etiket; isteğe bağlı
Bu depo için BUILD dosyası olarak kullanılacak dosya.Bu özellik mutlak bir etikettir (ana depo için "@//" kullanın). Dosyanın BUILD olarak adlandırılması gerekmez ancak adlandırılabilir (örneğin, BUILD.new-repo-name, dosyayı, depodaki asıl BUILD dosyalarından ayırt etmek için iyi bir seçenek olabilir). |
build_file_content |
Dize; isteğe bağlı
Bu depo için BUILD dosyasının içeriği. |
commit |
Dize; isteğe bağlı
belirli bir commit'i kullanmak için. Branch, tag veya commit'ten tam olarak biri belirtilmelidir. |
init_submodules |
Boole; isteğe bağlı
Depodaki alt modüllerin klonlanıp klonlanmayacağı. |
patch_args |
Dize listesi; isteğe bağlı
Yama aracına verilen bağımsız değişkenler. Varsayılan olarak -p0'dır (bkz. "patch_strip" özelliği). Ancak git tarafından oluşturulan yamalar için genellikle -p1 gerekir. Birden fazla -p bağımsız değişkeni belirtilirse sonuncusu geçerli olur. -p dışındaki bağımsız değişkenler belirtilirse Bazel, Bazel'e özgü yama uygulaması yerine yama komut satırı aracını kullanmaya geri döner. Yama komut satırı aracına geri dönüldüğünde ve patch_tool özelliği belirtilmediğinde "patch" kullanılır. |
patch_cmds |
Dize listesi; isteğe bağlı
Yamalar uygulandıktan sonra Linux/MacOS'te uygulanacak Bash komutlarının sırası. |
patch_cmds_win |
Dize listesi; isteğe bağlı
Düzeltme ekleri uygulandıktan sonra Windows'da uygulanacak PowerShell komutlarının sırası. Bu özellik ayarlanmazsa patch_cmds, Windows'da yürütülür. Bu işlem için Bash ikilisinin bulunması gerekir. |
patch_strip |
Tam sayı; isteğe bağlı
Bu değer "N" olarak ayarlandığında, `patch_args` değerinin başına `-pN` eklenmesiyle aynı etkiye sahiptir. |
patch_tool |
Dize; isteğe bağlı
Kullanılacak patch(1) yardımcı programı. Bu belirtilirse Bazel, Bazel'e özgü yama uygulaması yerine belirtilen yama aracını kullanır. |
patches |
Etiket listesi; isteğe bağlı
Arşiv ayıklandıktan sonra yama olarak uygulanacak dosyaların listesi. Varsayılan olarak, yaklaşık eşleşmeyi ve ikili yamayı desteklemeyen Bazel'e özgü yama uygulaması kullanılır. Ancak Bazel, `patch_tool` özelliği belirtilmişse veya `patch_args` özelliğinde `-p` dışında bağımsız değişkenler varsa yama komut satırı aracını kullanmaya geri döner. |
recursive_init_submodules |
Boole; isteğe bağlı
Alt modüllerin depoda yinelemeli olarak klonlanıp klonlanmayacağı. |
remote |
Dize; zorunlu
Uzak Git deposunun URI'si |
repo_mapping |
Sözlük: Dize -> Dize; isteğe bağlı
Yalnızca "WORKSPACE" bağlamında: Yerel depo adından genel depo adına kadar olan bir sözlük. Bu, bu deponun bağımlılıkları için çalışma alanı bağımlılık çözümlemesi üzerinde kontrol sağlar. Örneğin, `"@foo": "@bar"` girişi, bu deponun `@foo` öğesine bağlı olduğu her durumda (ör. `@foo//some:target` öğesine bağımlılık) bu bağımlılığı aslında genel olarak tanımlanmış `@bar` içinde (`@bar//some:target`) çözmesi gerektiğini belirtir. Bu özellik, `MODULE.bazel` bağlamında (bir modül uzantısının uygulama işlevi içinde bir depo kuralı çağrılırken) _desteklenmez_. |
shallow_since |
Dize; isteğe bağlı
Belirtilen commit'ten sonra olmayan isteğe bağlı bir tarih; bir etiket veya dal belirtilmişse bağımsız değişkene izin verilmez (bu, her zaman --depth=1 ile klonlanabilir). Böyle bir tarihi belirtilen taahhüde yakın bir tarihe ayarlamak, sunucu rastgele taahhütlerin sığ getirilmesini desteklemese bile deponun sığ bir şekilde klonlanmasına olanak tanıyabilir. Git'in --shallow-since uygulamasındaki hatalar nedeniyle, bu özelliğin kullanılması getirme hatalarına yol açabileceğinden önerilmez. |
strip_prefix |
Dize; isteğe bağlı
Çıkarılan dosyalardan kaldırılacak bir dizin öneki. |
tag |
Dize; isteğe bağlı
etiketi, uzak depoda kullanıma alınır. Branch, tag veya commit'ten tam olarak biri belirtilmelidir. |
verbose |
Boole; isteğe bağlı |
workspace_file |
Etiket; isteğe bağlı
Bu depo için "WORKSPACE" dosyası olarak kullanılacak dosya. `workspace_file` veya `workspace_file_content` belirtilebilir ya da ikisi de belirtilmeyebilir ancak ikisi birden belirtilemez. |
workspace_file_content |
Dize; isteğe bağlı
Bu depo için WORKSPACE dosyasının içeriği. `workspace_file` veya `workspace_file_content` belirtilebilir ya da ikisi de belirtilmeyebilir ancak ikisi birden belirtilemez. |