Git 2.41: nuevas características y mejoras de rendimiento

Published:

El proyecto Git de código abierto ha lanzado recientemente Git 2.41, repleto de características interesantes y correcciones de errores aportadas por una comunidad diversa de más de 95 desarrolladores, incluidos 29 nuevos colaboradores.

Esta última versión se basa en los avances realizados en la versión anterior, Git 2.40, y ofrece mejoras para el manejo de Git, introduce índices inversos en el disco de forma predeterminada, amplía el protocolo auxiliar de credenciales y ofrece opciones convenientes para las verificaciones de conectividad y secuencias de comandos.

¿Qué hay de nuevo y mejorado en Git 2.41?

Una de las mejoras notables en Git 2.41 es el manejo mejorado de objetos inalcanzables dentro de un repositorio. Los repositorios de Git constan de varios objetos, incluidos blobs, árboles y confirmaciones, que sirven como base para la estructura y el historial del repositorio.

Los objetos inalcanzables son aquellos a los que no se puede acceder desde ninguna rama o etiqueta en el historial del repositorio. En versiones anteriores de Git , estos objetos se almacenaban como copias sueltas hasta que caducaban, lo que provocaba un aumento potencial del tamaño del repositorio y el agotamiento del inodo.

Para abordar este problema, Git 2.37 introdujo » cruft packs «, que almacenan objetos inalcanzables juntos en un archivo de paquete y usan un archivo auxiliar *.mtimes para rastrear la antigüedad de los objetos. En Git 2.41, la generación de paquetes cruft está habilitada de forma predeterminada, lo que optimiza el tamaño y el rendimiento del repositorio.

Otra mejora significativa en Git 2.41 es la introducción de índices inversos en disco como característica predeterminada. Estos índices inversos almacenan información similar a los índices de archivos de paquete, pero se calculan previamente y se almacenan junto con el archivo de paquete correspondiente como archivos *.rev .

Esta mejora acelera significativamente las operaciones en repositorios grandes, particularmente para tareas como enviar cambios o determinar el tamaño en disco de un objeto. Con los índices inversos en disco habilitados de forma predeterminada, los usuarios de Git pueden esperar un mejor rendimiento al ejecutar git gc después de la actualización.

Los resultados de las pruebas han mostrado una aceleración de 1,49x para operaciones git push con uso intensivo de CPU y una impresionante aceleración de 77x para calcular el tamaño de un solo objeto usando git cat-file --batch='%(objectsize:disk)'.

Git 2.41 también amplía el protocolo auxiliar de credenciales para admitir el paso de encabezados WWW-Authenticate entre auxiliares de credenciales y los servicios con los que se autentican. Esta mejora permite un control de acceso más detallado a los repositorios de Git al permitir que los usuarios determinen el alcance de sus solicitudes.

Además, el nuevo átomo de formato para cada referencia, %(ahead-behind:<base>)permite a los usuarios solicitar directamente información sobre la cantidad de confirmaciones por delante o por detrás de una base específica. Esta función mejora la eficiencia al realizar el cálculo en una sola caminata, lo que la hace más efectiva que los métodos anteriores.

En términos de usabilidad y capacidades de secuencias de comandos, Git 2.41 presenta varias mejoras. El comando git fetch ahora admite la opción --porcelain, que proporciona un formato de salida compatible con secuencias de comandos. Esta opción simplifica el proceso de procesar mediante programación los resultados de obtención.

- Advertisement -
Jorge
Jorgehttps://nksistemas.com
Soy Jorge, Sr Sysadmin Linux/DevOps/SRE y creador de NKSistemas.com Trabajo con plataformas: Linux, Windows, AWS, GCP, VMware, Helm, kubernetes, Docker, etc.

Related articles