Git 2.35 llega con nuevas funciones, correcciones de errores y mas
Después de dos meses de desarrollo se dio a conocer el lanzamiento de la nueva versión de Git 2.35 que en comparación con la versión anterior, se aceptaron 494 cambios en la nueva versión, preparada con la participación de 93 desarrolladores, de los cuales 35 participaron en el desarrollo por primera vez.
En cuanto a las principales innovaciones que se destacan de esta nueva versión podremos encontrar las opciones ampliadas para usar claves SSH para firmar digitalmente objetos Git.
Para diferenciar el período de validez de varias claves, se ha agregado soporte para las directivas de OpenSSH «valid-before» y «valid-after», que se pueden usar para garantizar el trabajo correcto con las firmas.
Antes de eso, había un problema con la separación de firmas con la clave antigua y la nueva: si elimina la clave anterior, será imposible verificar las firmas realizadas con ella, y si la deja, aún podrá crear firmas nuevas con la clave antigua, que ya ha sido sustituida por otra clave. Con válido antes y válido después, puede separar el alcance de las claves en función de cuándo se creó la firma.
Otro de los cambios que se destaca de esta nueva versión de Git 2.35 es la configuración merge.conflictStyle, que permite seleccionar el modo para mostrar información sobre conflictos durante una combinación, ahora admite el modo «zdiff3», que mueve todas las cadenas de tipo especificadas al principio o al final de un conflicto fuera del área de conflicto, lo que permite una presentación más compacta de la información.
Se agregó el modo «–staged» al comando «git stash«, que permite ocultar solo los cambios agregados al índice, por ejemplo, en situaciones en las que necesita posponer temporalmente algunos cambios complejos para agregar primero lo que ya está listo, y con el resto resolverlo después de un tiempo. El modo es similar al comando «git commit«, escribiendo solo los cambios colocados en el índice, pero en lugar de crear una nueva confirmación en «git stash –staged«, el resultado se guarda en el área temporal de stash. Una vez que se necesitan los cambios, se pueden revertir con el comando «git stash pop».
Por otra parte podremos encontrar que se agregó un nuevo especificador de formato «–format=%(describe)» al comando «git log«, lo que permite que la salida de «git log» coincida con la salida del comando «git describe».
Las opciones para «git describe» se especifican directamente dentro del especificador («–format=%(describe:match=<foo>,exclude=<bar>)»), que también puede incluir etiquetas abreviadas («–format=% ( describe:tags=<bool>)») y ajusta el número de caracteres hexadecimales para identificar objetos.
Por ejemplo, para mostrar las 8 confirmaciones más recientes cuyas etiquetas no tienen una etiqueta de candidato de lanzamiento y especificar identificadores de 13 caracteres, puede usar el comando:
Se ha trabajado para estandarizar el uso del tipo «size_t» en lugar de «unsigned long» para los valores que representan el tamaño de los objetos, lo que permitió aplicar los filtros «clean» y «smudge» con archivos de más de 4 GB en todas las plataformas, incluidas las plataformas con el modelo de datos LLP64, escriba «largo sin firmar», que está limitado a 4 bytes.
De los demás cambios que se destacan de la nueva versión:
- Se agregó la implementación inicial de un nuevo backend «reftable» para almacenar referencias como ramas y etiquetas en un repositorio.
- La paleta de colores del comando «git grep» se ha cambiado para que coincida con la utilidad GNU grep.
- El comando «git sparse-checkout init» ha quedado obsoleto y en su lugar se debe usar «git sparse-checkout set«.
- Se agregó la opción «–empty=(stop|drop|keep)» al comando «git am», que permite, al analizar parches desde el buzón, elegir el comportamiento de los mensajes vacíos que no contienen parches.
- Se agregó soporte para índices dispersos a «git reset», «git diff», «git reproche», «git fetch», «git pull» y «git ls-files» para mejorar el rendimiento y ahorrar espacio en los repositorios, en los que se realizan operaciones de clonación (sparse-checkout).
Finalmente si estás interesado en poder conocer más al respecto sobre esta nueva versión de Git 2.35 puedes consultar los detalles en el siguiente enlace.