Bagikan melalui


Batas Git

Azure DevOps

Kami memberlakukan batas sumber daya pada repositori Git di Azure Repos untuk memastikan keandalan dan ketersediaan untuk semua pelanggan. Dengan menjaga ukuran data dan jumlah dorongan yang wajar, Anda dapat mengharapkan pengalaman keseluruhan yang lebih baik dengan Git.

Git berpartisipasi dalam pembatasan tarif bersama dengan layanan Azure DevOps lainnya. Selain itu, kami memberlakukan batasan pada ukuran total repositori, dorongan, dan panjang jalur file dan direktori.

Ukuran repositori

Repositori tidak boleh lebih besar dari 250 GB. Untuk mengambil ukuran repositori Anda, jalankan git count-objects -vH dalam prompt perintah, dan cari entri yang disebut "paket ukuran":

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

Sebaiknya simpan repositori Anda di bawah 10 GB untuk performa optimal. Jika repositori Anda melebihi ukuran ini, pertimbangkan untuk menggunakan Git-LFS, Skalar, atau Artefak Azure untuk mengelola artefak pengembangan Anda.

Azure Repos terus mengurangi ukuran keseluruhan dan meningkatkan efisiensi repositori Git dengan mengonsolidasikan file serupa ke dalam paket. Untuk repositori yang mendekati 250 GB, batas internal pada file paket dapat dicapai sebelum proses pengoptimalan selesai. Ketika batas ini tercapai, pengguna yang mencoba menulis ke repositori melihat pesan kesalahan berikut: "Batas file paket Git telah tercapai, operasi tulis sementara tidak tersedia saat repositori diperbarui." Operasi tulis segera dipulihkan setelah pekerjaan pengoptimalan selesai.

File tidak boleh lebih besar dari 100 MB. Batas ini membantu memastikan performa dan keandalan repositori Git yang optimal. File besar dapat memperlambat operasi repositori secara signifikan, seperti mengkloning, mengambil, dan mendorong perubahan. Jika Anda perlu menyimpan file besar, pertimbangkan untuk menggunakan Git LFS (Penyimpanan File Besar), yang dirancang untuk menangani file besar secara efisien dengan menyimpannya di luar repositori utama dan hanya menyimpan referensi ke dalam repositori. Pendekatan ini membantu menjaga performa dan pengelolaan repositori Git Anda.

Ukuran pendorongan

Dorongan besar mengonsumsi sumber daya yang signifikan, memblokir atau memperlambat bagian lain dari layanan. Dorongan ini sering tidak selaras dengan aktivitas pengembangan perangkat lunak umum dan mungkin menyertakan item seperti output build atau gambar VM. Oleh karena itu, dorongan dibatasi hingga 5 GB pada satu waktu.

Ada satu pengecualian di mana dorongan besar normal: memigrasikan repositori dari layanan lain ke Azure Repos. Migrasi tersebut masuk sebagai satu dorongan, dan kami tidak berniat memblokir impor, bahkan untuk repositori besar. Jika repositori melebihi 5 GB, Anda harus menggunakan web untuk mengimpor repositori alih-alih baris perintah.

Ukuran pendorongan untuk objek LFS

Git LFS tidak dihitung dalam batas repositori 5 GB. Batas 5 GB hanya berlaku untuk file di repositori aktual, bukan untuk blob yang disimpan dengan LFS. Jika Anda mengalami pendorongan yang gagal karena batas 5 GB, pastikan file Anda .gitattributes menyertakan ekstensi file yang ingin Anda lacak dengan LFS. Pastikan file ini disimpan dan dipentaskan sebelum Anda menahapkan file besar yang akan dilacak.

Panjang jalur

Azure Repos memberlakukan kebijakan pendorongan yang membatasi panjang jalur dalam repositori Git dengan menolak dorongan yang memperkenalkan jalur yang terlalu panjang. Tidak seperti kebijakan Panjang jalur maksimum, Anda tidak dapat menonaktifkan atau mengambil alihnya, karena memberlakukan nilai maksimum yang didukung oleh platform kami.

Batas berikut diberlakukan:

  • Total panjang jalur: 32.766 karakter
  • Panjang komponen jalur (folder atau nama file): 4.096 karakter

Kebijakan ini hanya memengaruhi jalur yang baru diperkenalkan dalam pendorongan. Ini tidak berlaku jika Anda mengubah file yang sudah ada, tetapi berlaku jika Anda membuat file baru, mengganti nama, atau memindahkan file yang sudah ada.

Jika ada penerapan yang didorong memperkenalkan jalur yang melebihi batas ini, pendorongan ditolak dengan salah satu pesan kesalahan berikut:

  • 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.