Compartir a través de


Límites de Git

Azure DevOps Services

Imponemos límites de recursos a los repositorios de Git en Azure Repos para garantizar la confiabilidad y la disponibilidad para todos los clientes. Al mantener el tamaño de los datos y el número de inserciones razonables, puede esperar una mejor experiencia general con Git.

Git participa en la limitación de velocidad junto con el resto de Azure DevOps Services. Además, imponemos límites en el tamaño total de los repositorios, las inserciones y la longitud de las rutas de archivos y directorios.

Tamaño del repositorio

Los repositorios no deben tener más de 250 GB. Para recuperar el tamaño de su repositorio, ejecútelo git count-objects -vH en un símbolo del sistema y busque la entrada llamada "size-pack":

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

Te recomendamos que mantengas el repositorio por debajo de 10 GB para obtener un rendimiento óptimo. Si el repositorio supera este tamaño, considere la posibilidad de usar Git-LFS, Escalar o Azure Artifacts para administrar los artefactos de desarrollo.

Azure Repos reduce continuamente el tamaño total y aumenta la eficacia de los repositorios de Git mediante la consolidación de archivos similares en paquetes. En el caso de los repositorios que se acercan a los 250 GB, se puede alcanzar el límite interno de los archivos de paquete antes de que se complete el proceso de optimización. Cuando se alcanza este límite, los usuarios que intentan escribir en el repositorio ven el siguiente mensaje de error: "Se ha alcanzado el límite de archivos del paquete Git, las operaciones de escritura no están disponibles temporalmente mientras se actualiza el repositorio". Las operaciones de escritura se restauran inmediatamente después de que se complete el trabajo de optimización.

Los archivos no deben tener más de 100 MB. Este límite ayuda a garantizar un rendimiento y una fiabilidad óptimos del repositorio de Git. Los archivos grandes pueden ralentizar significativamente las operaciones del repositorio, como la clonación, la recuperación y el envío de cambios. Si necesita almacenar archivos grandes, considere usar Git LFS (Large File Storage), que está diseñado para manejar archivos grandes de manera eficiente almacenándolos fuera del repositorio principal y solo manteniendo referencias a ellos dentro del repositorio. Este enfoque ayuda a mantener el rendimiento y la capacidad de administración del repositorio de Git.

Tamaño de empuje

Las inserciones grandes consumen recursos significativos, bloqueando o ralentizando otras partes del servicio. Estas inserciones a menudo no se alinean con las actividades típicas de desarrollo de software y pueden incluir elementos como salidas de compilación o imágenes de máquina virtual. Por lo tanto, las inserciones están limitadas a 5 GB a la vez.

Hay una excepción en la que las inserciones grandes son normales: la migración de un repositorio de otro servicio a Azure Repos. Estas migraciones se producen como una sola inserción y no tenemos la intención de bloquear las importaciones, ni siquiera en el caso de los repositorios grandes. Si el repositorio supera los 5 GB, debe utilizar la web para importar el repositorio en lugar de la línea de comandos.

Tamaño de inserción para objetos LFS

Git LFS no cuenta para el límite de repositorio de 5 GB. El límite de 5 GB solo se aplica a los archivos del repositorio real, no a los blobs almacenados con LFS. Si encuentra errores de inserción debido al límite de 5 GB, asegúrese de que su .gitattributes archivo incluya las extensiones de los archivos que desea rastrear con LFS. Asegúrese de que este archivo se guarde y almacene provisionalmente antes de almacenar provisionalmente los archivos grandes que se van a rastrear.

Longitud de la ruta de acceso

Azure Repos aplica una directiva de inserción que limita la longitud de las rutas de acceso en un repositorio de Git mediante el rechazo de las inserciones que introducen rutas de acceso excesivamente largas. A diferencia de la política de longitud máxima de ruta, no puede deshabilitarla ni anularla, ya que aplica los valores máximos admitidos por nuestra plataforma.

Se aplican los siguientes límites:

  • Longitud total de la ruta: 32.766 caracteres
  • Longitud del componente de ruta (nombre de carpeta o archivo): 4.096 caracteres

Esta política solo afecta a las rutas recién introducidas en una inserción. No se aplica si cambia un archivo existente, pero sí si crea un nuevo archivo, cambia el nombre o mueve uno existente.

Si alguna de las confirmaciones que se están insertando introduce rutas que superan estos límites, la inserción se rechaza con uno de los siguientes mensajes de error:

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