Se ha dado a conocer el lanzamiento de la nueva versión de Git 2.48 la cual incluye múltiples optimizaciones y mejoras. Este lanzamiento destaca por la inclusión de Meson como nuevo sistema de compilación, mejoras de rendimiento y soporte, asi como también correcciones y la solución al problema de las pérdidas de memoria.
En Git 2.48 se ha introducido el sistema de compilación Meson que se suma a GNU Make y CMake. Meson ofrece un proceso de construcción mÔs limpio y accesible, especialmente para quienes no estÔn familiarizados con la complejidad de Make, al mismo tiempo que conserva la compatibilidad multiplataforma. Sin embargo, no se contempla la eliminación de las herramientas tradicionales de compilación, asegurando continuidad para los usuarios actuales.
Otra de las novedades que se destaca es la incorporación de soporte para implementaciones alternativas del algoritmo SHA-1 en el cĆ”lculo de sumas de verificación. Por defecto, las nuevas implementaciones protegen contra ataques como SHAttered y Shambles, aunque a costa de un menor rendimiento. Para tareas donde la seguridad criptogrĆ”fica no es prioritaria, se han introducido opciones que aceleran el cĆ”lculo sacrificando dicha protección. Esta flexibilidad permite a los usuarios adaptar el rendimiento segĆŗn sus necesidades especĆficas, como lo demuestran los aumentos registrados en GitHub durante operaciones de clonación.
AdemÔs de ello, se menciona que se ha añadido una nueva funcionalidad al comando range-diff que permite analizar diferencias entre el estado final de una fusión y los datos reflejados tras resolver conflictos. Esto facilita la comprensión de los cambios realizados en procesos complejos de integración, haciendo que la herramienta sea aún mÔs útil para desarrolladores que trabajan en grandes proyectos colaborativos.
TambiĆ©n en Git 2.48 se ha abordado el problema de las pĆ©rdidas de memoria, algo que aunque históricamente no habĆa sido una preocupación significativa para Git, cobra importancia dado los procesos de larga duración donde las funcionalidades internas se transforman en bibliotecas reutilizables. La posibilidad de ejecutar pruebas con detección de pĆ©rdidas asegura mayor estabilidad y confianza en este tipo de escenarios.
Por otra parte, el comando Ā«git for-each-refĀ», incorpora una optimización para la gestión de referencias en el repositorio. Esta mejora combina controladores de filtrado y formato de salida no solo para listas sin ordenar, sino tambiĆ©n cuando se utiliza la opción Ā«āsortĀ», mejorando la eficiencia en escenarios donde el orden es importante.
En cuanto a Ā«reftableĀ», se ha trabajado en un almacenamiento mĆ”s eficiente para referencias de ramas y etiquetas, utilizando bloques que aceleran la bĆŗsqueda y reducen el consumo de memoria. Este sistema ahora es menos dependiente de bibliotecas externas como libgit, lo que simplifica las dependencias al compilar Git. AdemĆ”s, se han introducido mecanismos para manejar adaptativamente errores de memoria insuficiente, evitando fallos crĆticos en estas situaciones.
La funcionalidad de clonación parcial también ha recibido mejoras, resolviendo problemas relacionados con bucles y corrupción en el repositorio tras ejecutar el comando «git gc». Este avance es especialmente importante para quienes trabajan con repositorios fragmentados o de gran tamaño, ya que garantiza la integridad de los datos.
El comando «git fetch» también ha sido mejorado, ya que ahora, si la referencia «refs/remotes/origin/HEAD» no existe en el sistema local pero estÔ presente en el remoto, esta se sincroniza automÔticamente. Para mayor control, se ha introducido la configuración «remote.origin.followRemoteHead», que regula esta sincronización.
Otro cambio significativo se encuentra en el comando Ā«git rebase ārebase-mergesĀ», que ahora prioriza el uso de nombres de ramas como etiquetas, mejorando la claridad durante la reorganización de commits. Por otro lado, los comandos Ā«git notes addĀ» y Ā«git notes appendĀ» han incorporado el indicador Ā«-eĀ», que permite editar notas directamente en un editor externo definido por la variable de entorno GIT_EDITOR.
Por Ćŗltimo y no menos importante, en tĆ©rminos de compatibilidad y estĆ”ndares, Git 2.48 amplĆa su soporte para GCC 15 y el estĆ”ndar C23, asegurando que se mantenga actualizado con las herramientas de desarrollo modernas. Sin embargo, se ha discontinuado el soporte para versiones antiguas de libcURL y Perl.
Finalmente, si estƔs interesado en poder conocer mƔs al respecto, puedes consultar los detalles en el siguiente enlace.