git deposu kuralları

Sorun bildir Kaynağı görüntüle Nightly · 8.3 · 8.2 · 8.1 · 8.0 · 7.6

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, remote_module_file_integrity,
               remote_module_file_urls, shallow_since, sparse_checkout_file, sparse_checkout_patterns,
               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 olarak urls listesini destekler. git_repository ise yalnızca tek bir remote'ü destekler.
  • http_archive, depo önbelleği ile çalışır ancak git_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. Dal, etiket 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 (ör. BUILD.new-repo-name, dosyayı deponun gerçek 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. Dal, etiket 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 Tamsayı; 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 yama(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

remote_module_file_integrity Dize; isteğe bağlı

Yalnızca dahili kullanım içindir.

remote_module_file_urls Dize listesi; isteğe bağlı

Yalnızca dahili kullanım içindir.

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.

sparse_checkout_file Etiket; isteğe bağlı

Bu depodaki dosyaların seyrek ödeme işlemi için .gitignore tarzı kalıplar içeren dosya. `sparse_checkout_patterns` veya `sparse_checkout_file` özelliklerinden biri ya da hiçbiri belirtilebilir ancak ikisi birden belirtilemez.

sparse_checkout_patterns Dize listesi; isteğe bağlı

Bu depodaki dosyaların seyrek ödeme için kalıpların sırası.

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. Dal, etiket veya commit'ten tam olarak biri belirtilmelidir.

verbose Boole; isteğe bağlı
workspace_file Etiket; isteğe bağlı

İşlem yapmayan özellik; kullanmayın.

workspace_file_content Dize; isteğe bağlı

İşlem yapmayan özellik; kullanmayın.

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, remote_module_file_integrity,
                   remote_module_file_urls, shallow_since, sparse_checkout_file,
                   sparse_checkout_patterns, 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 olarak urls listesini destekler. git_repository ise yalnızca tek bir remote'ü destekler.
  • http_archive, depo önbelleği ile çalışır ancak git_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. Dal, etiket 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 (ör. BUILD.new-repo-name, dosyayı deponun gerçek 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. Dal, etiket 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 Tamsayı; 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 yama(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

remote_module_file_integrity Dize; isteğe bağlı

Yalnızca dahili kullanım içindir.

remote_module_file_urls Dize listesi; isteğe bağlı

Yalnızca dahili kullanım içindir.

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.

sparse_checkout_file Etiket; isteğe bağlı

Bu depodaki dosyaların seyrek ödeme işlemi için .gitignore tarzı kalıplar içeren dosya. `sparse_checkout_patterns` veya `sparse_checkout_file` özelliklerinden biri ya da hiçbiri belirtilebilir ancak ikisi birden belirtilemez.

sparse_checkout_patterns Dize listesi; isteğe bağlı

Bu depodaki dosyaların seyrek ödeme için kalıpların sırası.

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. Dal, etiket veya commit'ten tam olarak biri belirtilmelidir.

verbose Boole; isteğe bağlı
workspace_file Etiket; isteğe bağlı

İşlem yapmayan özellik; kullanmayın.

workspace_file_content Dize; isteğe bağlı

İşlem yapmayan özellik; kullanmayın.