Git 2.45 llega con más de 540 cambios y novedades, conoce los mas importantes
La nueva versión de Git 2.45 llega después de dos meses de desarrollo y en este lanzamiento se presentan una gran cantidad de mejoras significativas y diversas novedades, siendo un total de 540 cambios que llegan gracias a la participación de más de 96 colaboradores, 38 de ellos nuevos.
Para quienes desconocen de Git, deben saber que es conocido como uno de los sistemas de control de versiones más populares, confiables y de alto rendimiento, ofreciendo herramientas flexibles de desarrollo no lineal basadas en ramificaciones y fusiones. Para mantener la integridad del historial y prevenir cambios retroactivos, Git utiliza un hash implícito de todo el historial anterior en cada confirmación.
Principales novedades de Git 2.45
En esta nueva versión que se presenta de Git 2.45, una de las novedades más importantes es el soporte preliminar para un nuevo backend de almacenamiento de referencias llamado «reftable», que permite almacenar de manera más eficiente las referencias de etiquetas y ramas en un repositorio. Este nuevo backend utiliza el almacenamiento en bloque empleado por el proyecto JGit y está optimizado para gestionar grandes cantidades de enlaces. En lugar de almacenar referencias sueltas o actualizar constantemente un archivo, reftable implementa un formato binario para almacenar referencias de manera eficiente. Al habilitar el nuevo backend con la opción "--ref-format=reftable"
al inicializar el repositorio ("git init --ref-format=reftable /ruta/al/repositorio")
, se logra acelerar las operaciones de búsqueda, lectura y escritura en repositorios con gran cantidad de enlaces, mejorando así el rendimiento general del sistema.
Otro de los cambios que se destaca de esta nueva versión es la introducción herramientas para facilitar la portabilidad entre identificadores de objetos basados en hash SHA-1 y SHA-256 (especialmente útil durante la migración gradual de un repositorio a utilizar hashes SHA-256). Se ha propuesto un nuevo formato de objeto que permite hacer referencia a los objetos no solo por el hash principal especificado al inicializar el repositorio, sino también mediante un hash de repuesto.
Además de ello, también se destaca la posibilidad de configurar prefijos alternativos para las diferencias de archivos, utilizando los parámetros diff.srcPrefix y diff.dstPrefix
en la configuración, esto permite indicar el estado antes y después de una versión particular del archivo con prefijos personalizados. Los prefijos alternativos permiten a los usuarios cambiar la forma en que Git muestra las rutas de los archivos antes y después de las diferencias.
Por la parte de las correcciones, Git 2.45 aborda diversos problemas menores, asi como también la implementación de optimizaciones para garantizar un rendimiento óptimo, además de que se ha mejorado la detección y gestión de objetos faltantes, facilitando la depuración del historial de un repositorio y se han introducido mejores en los registros de referencia.
De los demás cambios que se destacan de esta nueva versión:
- El comando
"git rev-list"
ahora puede mostrar ID de objetos que no están en el repositorio local, incluso si no son accesibles en una rama o etiqueta. Esto es útil para diagnosticar la corrupción del repositorio. - se ha ampliado la capacidad de personalización de los mensajes de commit, permitiendo caracteres o cadenas de varios bytes como indicador de comentario.
- Se agregó un nuevo comando
"git reflog list"
para mostrar los reflogs conocidos y sus enlaces correspondientes a etiquetas y ramas. - Además, la configuración
core.commentChar
ahora admite caracteres de varios bytes como delimitador de comentarios. - La opció
n "--comment"
se agregó al comando"git config"
para permitir guardar comentarios en el archivo .gitconfig y explicar la esencia de ciertas configuraciones. git config
ahora cuenta con una nueva opción para ayudar a documentar el archivo.gitconfig
. El formato de archivo.gitconfig
permite comentarios que comienzan con un carácter#
, lo que significa que todo lo que sigue a eso#
hasta que la próxima nueva línea sea ignorada.- Se agregó la opción
"--empty"
al comando"git cherry-pick"
para eliminar automáticamente las confirmaciones redundantes, similar a la opción"--empty"
en git-rebase y git-am. - Ahora el comando
"git checkout -p"
permite utilizar el símbolo «@»
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.