git deposu kuralları

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 taahhüt için sığ getirme işlemi gerçekleştirmeye çalışır. Bu işlem başarısız olursa (genellikle sunucu desteği eksikliğinden dolayı) deponun tam getirilmesi işlemine geçilir.

git_repository yerine http_archive tercih edin. Bunun nedenleri şunlardır:

  • Git deposu kuralları sisteme bağlıdır git(1), ancak HTTP indirici Bazel'e yerleştirilmiştir ve sistem bağımlılığı yoktur.
  • http_archive, ayna olarak urls listesini destekler ve git_repository 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 konusuna bakın.

Özellikler

name Ad; zorunlu

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ü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'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 Sözlük: Dize -> Dize; gerekli

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 kayıttan sonra değil, isteğe bağlı bir tarihtir. Bir etiket veya dal belirtilmişse bağımsız değişkene izin verilmez (bu her zaman --depth=1 ile 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ı

etiketini uzak depoda kontrol etmek için. 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. Nedenler şunlardır:

  • Git deposu kuralları sisteme bağlıdır git(1), ancak HTTP indirici Bazel'e yerleştirilmiştir ve sistem bağımlılığı yoktur.
  • http_archive, ayna olarak urls listesini, git_repository ise yalnızca tek bir remote listesini destekler.
  • http_archive, depo önbelleği ile çalışır ancak git_repository ile çalışmaz. Daha fazla bilgi için #5116 konusuna bakın.

Özellikler

name Ad; zorunlu

Bu depo 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ü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'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 yama(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 çıkarıldıktan sonra yama olarak uygulanacak dosyaların listesi. Varsayılan olarak, bulanık eşleşmeyi ve ikili yamayı desteklemeyen Bazel'e özgü yamayı kullanır. Ancak Bazel, "patch_tool" özelliği belirtilirse veya "patch_args" özelliğinde "-p" dışında başka bağımsız değişkenler varsa yedek olarak yamayı komut satırı aracını kullanır.

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 kayıttan sonra değil, isteğe bağlı bir tarihtir. Bir etiket veya dal belirtilmişse bağımsız değişkene izin verilmez (bu her zaman --depth=1 ile 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ı

etiketini uzak depoda kontrol etmek için. branch, tag veya commit özelliklerinden 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. İ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" belirtilebilir. İkisi birden belirtilemez.