Aşağıdaki işlevler @bazel_tools//tools/build_defs/repo:git.bzl
'ten yüklenebilir.
Harici git depolarını klonlama kuralları.
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)
Harici bir Git deposunu klonlayın.
Bir Git deposunu klonlar, belirtilen etiketi veya işlemi kontrol eder ve hedeflerini bağlama için kullanılabilir hale getirir. Ayrıca, gerçekten kontrol edilen commit'in kimliğini ve tarihini belirleyin ve bu kuralın yeniden üretilebilir bir sürümünü sağlayan parametreleri içeren bir sözlük döndürün (etiket her zaman bu şekilde olmayabilir).
Bazel, önce yalnızca belirtilen kaydetme için yüzeysel bir getirme gerçekleştirmeye çalışır. Bu işlem başarısız olursa (genellikle sunucu desteğinin eksik olması nedeniyle) depoyu tam olarak getirir.
git_repository
yerine http_archive
tercih edilir.
Bunun nedenleri şunlardır:
- Git deposu kuralları,
git(1)
sistemine bağlıdır. HTTP indirme aracı ise Bazel'de yerleşiktir ve herhangi bir sistem bağımlılığı yoktur. http_archive
, ayna olarakurls
listesini destekler vegit_repository
yalnızca tek birremote
'ı destekler.http_archive
, depo önbelleği ile çalışır ancakgit_repository
ile çalışmaz. Daha fazla bilgi için bkz. #5116.
Özellikler
name |
Ad; gerekli
Bu depo için benzersiz bir ad. |
branch |
Dize; isteğe bağlı
uzak depodaki dal. branch, tag veya commit özelliklerinden biri belirtilmelidir. |
build_file |
Etiket; isteğe bağlı
Bu depolar 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 (BUILD.yeni-depo-adı gibi bir ad, deponun asıl BUILD dosyalarından ayırt edilmesini sağlayabilir. |
build_file_content |
Dize; isteğe bağlı
Bu deponun BUILD dosyasının içeriği. |
commit |
Dize; isteğe bağlı
belirli bir commit'i kontrol etmeyi seçebilirsiniz. branch, tag veya commit özelliklerinden 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 değerine ayarlanır ancak git tarafından oluşturulan yamalar için genellikle -p1 değerine ihtiyaç duyulur. Birden fazla -p bağımsız değişkeni belirtilirse en son bağımsız değişken geçerli olur. -p dışındaki bağımsız değişkenler belirtilirse Bazel, Bazel'e özgü yamayı uygulamak yerine yamayı komut satırı aracıyla uygular. Yama komut satırı aracına geri dönülürken ve patch_tool özelliği belirtilmediyse "patch" kullanılır. |
patch_cmds |
Dize listesi; isteğe bağlı
Yamalar uygulandıktan sonra Linux/Macos'ta uygulanacak Bash komutları dizisi. |
patch_cmds_win |
Dize listesi; isteğe bağlı
Yamalar uygulandıktan sonra Windows'a uygulanacak PowerShell komutları dizisi. Bu özellik ayarlanmazsa patch_cmds Windows'ta yürütülür. Bunun için Bash ikilisinin mevcut olması gerekir. |
patch_tool |
Dize; isteğe bağlı
Kullanılacak yamalı(1) yardımcı program. Bu belirtilirse Bazel, Bazel'e özgü yamalı uygulama yerine belirtilen yamalı araç kullanır. |
patches |
Etiket listesi; isteğe bağlı
Arşiv ayıklandıktan sonra yama olarak uygulanacak dosyaların listesi. Varsayılan olarak, fuzz eşleme ve ikili yamayı desteklemeyen Bazel'da yerel yama uygulamasını kullanır. Ancak "yama_aracı" özelliği belirtilirse veya "patch_args" özelliğinde "-p" dışında bağımsız değişkenler varsa Bazel, yama komut satırı aracını kullanmaya devam eder. |
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 |
Dictionary: String -> String; zorunlu
Yerel depo adından küresel depo adına bir sözlük. Bu sayede, bu deponun bağımlılıkları için çalışma alanı bağımlılık çözümü üzerinde kontrol sahibi olursunuz. Örneğin, "@foo": "@bar" girişi, bu depoda "@foo" bağımlılığı olduğunda (ör. "@foo//some:target" bağımlılığı) bu bağımlılığın aslında global olarak tanımlanmış "@bar" ("@bar//some:target") içinde çözülmesi gerektiğini belirtir. |
shallow_since |
Dize; isteğe bağlı
Belirtilen commit'ten sonra olmayan isteğe bağlı bir tarih; bir etiket veya dal belirtilirse bağımsız değişkene izin verilmez (bu, --depth=1 ile her zaman klonlanabilir). Sunucu, rastgele taahhütlerin sığ getirmelerini desteklemese bile, belirtilen taahhütlere yakın bir tarih ayarlamak, deponun sığ bir kopyasını oluşturmanıza olanak tanıyabilir. git'in --shallow-since uygulamasındaki hatalar nedeniyle, getirme hatalarına neden olabileceği için bu özelliğin kullanılması önerilmez. |
strip_prefix |
Dize; isteğe bağlı
Çıkarılan dosyalardan kaldırılacak bir dizin ön eki. |
tag |
Dize; isteğe bağlı
etiketine ekleyerek kontrol edebilirsiniz. branch, tag veya commit özelliklerinden biri belirtilmelidir. |
verbose |
Boole; isteğe bağlı |
workspace_file |
Etiket; isteğe bağlı
Bu deponun "WORKSPACE" dosyası olarak kullanılacak dosya. "workspace_file" veya "workspace_file_content" belirtilebilir. İkisi birden belirtilemez. |
workspace_file_content |
Dize; isteğe bağlı
Bu deponun WORKSPACE dosyasının içeriği. "workspace_file" veya "workspace_file_content"den biri belirtilebilir ya da ikisi birden belirtilemez. |
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)
Harici bir Git deposunu klonlayın.
Bir Git deposunu klonlar, belirtilen etiketi veya işlemi kontrol eder ve hedeflerini bağlama için kullanılabilir hale getirir. Ayrıca, gerçekten kontrol edilen commit'in kimliğini ve tarihini belirleyin ve bu kuralın yeniden üretilebilir bir sürümünü sağlayan parametreleri içeren bir sözlük döndürün (etiket her zaman bu şekilde olmayabilir).
Bazel önce yalnızca belirtilen taahhüt için sığ getirme işlemi gerçekleştirmeye çalışır. Bu işlem başarısız olursa (genellikle sunucu desteğinin eksik olması nedeniyle) depoyu tam olarak getirir.
git_repository
yerine http_archive
tercih edilir.
Bunun nedenleri şunlardır:
- Git deposu kuralları,
git(1)
sistemine bağlıdır. HTTP indirme aracı ise Bazel'de yerleşiktir ve herhangi bir sistem bağımlılığı yoktur. http_archive
, ayna olarakurls
listesini destekler vegit_repository
yalnızca tek birremote
'ı destekler.http_archive
, depo önbelleği ile çalışır ancakgit_repository
ile çalışmaz. Daha fazla bilgi için #5116 konusuna bakın.
Özellikler
name |
Ad; zorunlu
Bu kod deposu için benzersiz bir ad. |
branch |
Dize; isteğe bağlı
dalını seçmem gerekecek. branch, tag veya commit özelliklerinden biri belirtilmelidir. |
build_file |
Etiket; isteğe bağlı
Bu depolar 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 (BUILD.yeni-depo-adı gibi bir ad, deponun asıl BUILD dosyalarından ayırt edilmesini sağlayabilir. |
build_file_content |
Dize; isteğe bağlı
Bu deponun BUILD dosyasının içeriği. |
commit |
Dize; isteğe bağlı
belirli bir commit'i kontrol etmeyi seçebilirsiniz. branch, tag veya commit özelliklerinden 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 değerine ayarlanır ancak git tarafından oluşturulan yamalar için genellikle -p1 değerine ihtiyaç duyulur. Birden fazla -p bağımsız değişkeni belirtilirse en son bağımsız değişken geçerli olur. -p dışındaki bağımsız değişkenler belirtilirse Bazel, Bazel'e özgü yamayı uygulamak yerine yamayı komut satırı aracıyla uygular. Yama komut satırı aracına geri dönülürken ve patch_tool özelliği belirtilmediyse "patch" kullanılır. |
patch_cmds |
Dize listesi; isteğe bağlı
Yamalar uygulandıktan sonra Linux/Macos'ta uygulanacak Bash komutları dizisi. |
patch_cmds_win |
Dize listesi; isteğe bağlı
Yamalar uygulandıktan sonra Windows'a uygulanacak PowerShell komutları dizisi. Bu özellik ayarlanmazsa patch_cmds Windows'ta yürütülür. Bunun için Bash ikilisinin mevcut olması gerekir. |
patch_tool |
Dize; isteğe bağlı
Kullanılacak yamalı(1) yardımcı program. Bu belirtilirse Bazel, Bazel'de yerel 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, fuzz eşleme ve ikili yamayı desteklemeyen Bazel'da yerel yama uygulamasını kullanır. Ancak "yama_aracı" özelliği belirtilirse veya "patch_args" özelliğinde "-p" dışında bağımsız değişkenler varsa Bazel, yama komut satırı aracını kullanmaya devam eder. |
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 |
Dictionary: String -> String; zorunlu
Yerel depo adından genel depo adına bir sözlük. Bu, bu deposunun bağımlılıkları için çalışma alanı bağımlılık çözümü üzerinde kontrol sahibi olmanızı sağlar. Örneğin, "@foo": "@bar" girişi, bu depoda "@foo" bağımlılığı olduğunda (ör. "@foo//some:target" bağımlılığı) bu bağımlılığın aslında global olarak tanımlanmış "@bar" ("@bar//some:target") içinde çözülmesi gerektiğini belirtir. |
shallow_since |
Dize; isteğe bağlı
Belirtilen commit'ten sonra olmayan isteğe bağlı bir tarih; bir etiket veya dal belirtilirse bağımsız değişkene izin verilmez (bu, --depth=1 ile her zaman klonlanabilir). Sunucu, rastgele taahhütlerin sığ getirmelerini desteklemese bile, belirtilen taahhütlere yakın bir tarih ayarlamak, deponun sığ bir kopyasını oluşturmanıza olanak tanıyabilir. git'in --shallow-since uygulamasındaki hatalar nedeniyle, getirme hatalarına neden olabileceği için bu özelliğin kullanılması önerilmez. |
strip_prefix |
Dize; isteğe bağlı
Çıkarılan dosyalardan kaldırılacak bir dizin ön eki. |
tag |
Dize; isteğe bağlı
etiketine ekleyerek kontrol edebilirsiniz. branch, tag veya commit özelliklerinden biri belirtilmelidir. |
verbose |
Boole; isteğe bağlı |
workspace_file |
Etiket; isteğe bağlı
Bu deponun "WORKSPACE" dosyası olarak kullanılacak dosya. "workspace_file" veya "workspace_file_content" belirtilebilir. İkisi 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. İkisi birden belirtilemez. |