Aracılığıyla paylaş


Git sınırları

Azure DevOps Services

Tüm müşteriler için güvenilirlik ve kullanılabilirlik sağlamak amacıyla Azure Repos'taki Git depolarına kaynak sınırları uyguluyoruz. Veri boyutlarını ve gönderme sayısını makul tutarak, Git ile daha iyi bir genel deneyim bekleyebilirsiniz.

Git, Azure DevOps Services'in geri kalanıyla birlikte hız sınırlamasına katılır. Ayrıca, depoların toplam boyutuna, gönderimlere ve dosya ve dizin yollarının uzunluğuna sınırlamalar getiriyoruz.

Depo boyutu

Depolar 250 GB'tan büyük olmamalıdır. Deponuzun boyutunu almak için bir komut isteminde yürütün git count-objects -vH ve "size-pack" adlı girişi arayın:

D:\my-repo>git count-objects -vH

count: 482
size: 551.67 KiB
in-pack: 100365
packs: 25
size-pack: 642.76 MiB   <-- size of repository
prune-packable: 83
garbage: 0
size-garbage: 0 bytes

En iyi performans için deponuzu 10 GB'ın altında tutmanızı öneririz. Deponuz bu boyutu aşarsa, geliştirme yapıtlarınızı yönetmek için Git-LFS, Scalar veya Azure Artifacts kullanmayı göz önünde bulundurun.

Azure Repos, benzer dosyaları paketler halinde birleştirerek genel boyutu sürekli olarak azaltır ve Git depolarının verimliliğini artırır. 250 GB'a yaklaşan depolar için, optimizasyon işlemi tamamlanmadan önce paket dosyalarındaki dahili sınıra ulaşılabilir. Bu sınıra ulaşıldığında, depoya yazmaya çalışan kullanıcılar şu hata iletisini görür: "Git paketi dosya sınırına ulaşıldı, depo güncelleştirilirken yazma işlemleri geçici olarak kullanılamıyor." Yazma işlemleri, iyileştirme işi tamamlandıktan hemen sonra geri yüklenir.

Dosyalar 100 MB'tan büyük olmamalıdır. Bu sınır, Git deposunun en iyi performansını ve güvenilirliğini sağlamaya yardımcı olur. Büyük dosyalar, değişiklikleri kopyalama, getirme ve gönderme gibi depo işlemlerini önemli ölçüde yavaşlatabilir. Büyük dosyaları depolamanız gerekiyorsa, büyük dosyaları ana deponun dışında depolayarak ve yalnızca bunlara yapılan başvuruları depo içinde tutarak verimli bir şekilde işlemek için tasarlanmış Git LFS'yi (Büyük Dosya Depolama) kullanmayı düşünün. Bu yaklaşım, Git deponuzun performansını ve yönetilebilirliğini korumaya yardımcı olur.

İtme boyutu

Büyük gönderimler önemli miktarda kaynak tüketerek hizmetin diğer bölümlerini engeller veya yavaşlatır. Bu gönderimler genellikle tipik yazılım geliştirme etkinlikleriyle uyumlu değildir ve derleme çıktıları veya VM görüntüleri gibi öğeleri içerebilir. Bu nedenle, gönderimler bir kerede 5 GB ile sınırlıdır.

Büyük gönderimlerin normal olduğu bir özel durum vardır: bir depoyu başka bir hizmetten Azure Repos geçirme. Bu tür geçişler tek bir gönderim olarak gelir ve büyük depolar için bile içeri aktarmayı engelleme niyetinde değiliz. Depo 5 GB'ı aşarsa, depoyu içeri aktarmak için komut satırı yerine web'i kullanmanız gerekir.

LFS nesneleri için itme boyutu

Git LFS, 5 GB depo sınırına dahil değildir. 5 GB sınırı yalnızca gerçek depodaki dosyalar için geçerlidir, LFS ile depolanan bloblar için geçerli değildir. 5 GB sınırı nedeniyle başarısız gönderimlerle karşılaşırsanız, dosyanızın .gitattributes LFS ile izlemeyi düşündüğünüz dosyaların uzantılarını içerdiğinden emin olun. İzlenecek büyük dosyaları hazırlamadan önce bu dosyanın kaydedildiğinden ve hazırlandığından emin olun.

Yol uzunluğu

Azure Repos, aşırı uzun yollar sunan gönderimleri reddederek Git deposundaki yolların uzunluğunu sınırlayan bir gönderme ilkesi uygular. Maksimum yol uzunluğu politikasından farklı olarak, platformumuz tarafından desteklenen maksimum değerleri zorladığı için bunu devre dışı bırakamaz veya geçersiz kılamazsınız.

Aşağıdaki sınırlar uygulanır:

  • Toplam yol uzunluğu: 32.766 karakter
  • Yol bileşeni uzunluğu (klasör veya dosya adı): 4.096 karakter

Bu ilke yalnızca bir gönderimde yeni tanıtılan yolları etkiler. Varolan bir dosyayı değiştirirseniz uygulanmaz, ancak yeni bir dosya oluşturursanız, yeniden adlandırırsanız veya mevcut bir dosyayı taşırsanız uygulanır.

Gönderilen herhangi bir işleme, bu sınırları aşan yollar sunarsa, gönderme aşağıdaki hata iletilerinden biriyle reddedilir:

  • VS403729: The push was rejected because commit '6fbe8dc700fdb33ef512e2b9e35436faf555de76' contains a path, which exceeds the maximum length of 32766 characters.
  • VS403729: The push was rejected because commit 'd23277abfe2d8dcbb88456da880de631994dabb4' contains a path component, which exceeds the maximum length of 4096 characters.