El proyecto de código abierto Git acaba de lanzar la versión 2.45, con nuevas características y correcciones de errores gracias a la colaboración de más de 96 contribuidores, entre los cuales 38 son nuevos. La última vez que nos pusimos al día fue con la versión 2.44.
Para celebrar esta reciente actualización, GitHub ha destacado algunas de las características y cambios más interesantes introducidos desde la última vez.
Git 2.45 introduce soporte preliminar para un nuevo backend de almacenamiento de referencias llamado "reftable", prometiendo búsquedas, lecturas y escrituras más rápidas para repositorios con cualquier cantidad de referencias. Para aquellos que no estén familiarizados, reftable es un formato binario diseñado para almacenar referencias de manera eficiente, reduciendo el espacio utilizado y permitiendo actualizaciones atómicas.
Previamente, Git almacenaba las referencias de dos maneras: de forma "suleta" como un archivo dentro de $GIT_DIR/refs
, o "empaquetadas" como una entrada dentro del archivo $GIT_DIR/packed_refs
. Ambos enfoques tienen problemas con un gran número de referencias, como el agotamiento de inodos y costosos mantenimientos de I/O. El formato reftable resuelve estos problemas implementando un almacenamiento eficiente y de búsqueda casi constante.
Otra adición significativa en Git 2.45 es el soporte preliminar para la interoperabilidad entre SHA-1 y SHA-256, avanzando en la transición de Github hacia un hash más seguro. Esto introduce un concepto de "formato de objeto de compatibilidad", permitiendo que Git gestione objetos referenciados por ambos hash de manera experimental.
Además, Git 2.45 mejora la funcionalidad para inspeccionar repositorios corruptos mediante git rev-list --missing=print
, permitiendo identificar objetos faltantes incluso cuando las ramas o etiquetas están dañadas. También se presentan mejoras como git reflog list
para identificar referencias con reflogs y nuevas opciones de configuración para los prefijos de diferencias y mensajes de commits.
Por ejemplo, al configurar los prefijos de diferencias, ahora se puede sustituir a/
y b/
por prefijos personalizados como "antes" y "después", o utilizar rutas accesibles desde el terminal con soporte para hipervínculos.
Finalmente, esta versión integra una nueva opción experimental para ‘cherry-pick’ similar a --empty
en rebase
, facilitando la gestión de commits vacíos de manera más cómoda.
Estas son solo algunas de las novedades. Para más detalles, se pueden revisar las notas completas del lanzamiento de Git 2.45 en el repositorio de Git en GitHub.
Escrito por Taylor Blau, Staff Software Engineer en GitHub, trabajando en Git.
vía: Github Open Source