Git 2.32 llega con algunas mejoras, protección de rutas y mas

Después de tres meses de desarrollo se ha dado a conocer el lanzamiento la nueva versión del popular sistema de control de fuente distribuido Git 2.32. En comparación con la versión anterior, se adoptaron 617 cambios en la nueva versión, preparada con la participación de 100 desarrolladores, de los cuales 35 participaron en el desarrollo por primera vez.

Para quienes desconocen de Git deben saber que este es uno de los sistemas de control de versiones más populares, confiables y de alto rendimiento, que proporciona herramientas de desarrollo no lineales flexibles basadas en ramificaciones y fusiones.

Para garantizar la integridad del historial y la resistencia a los cambios «retroactivos», se utiliza hash implícito de todo el historial anterior en cada confirmación, también es posible certificar con firmas digitales de los desarrolladores de etiquetas individuales y confirmaciones.

Principales novedades de Git 2.32

En esta nueva versión en lugar del mecanismo GIT_CONFIG_NOSYSTEM que se utiliza para evitar la lectura de un archivo de configuración de todo el sistema, ahora se propone utilizar el mecanismo GIT_CONFIG_SYSTEM, que permite especificar explícitamente desde qué archivo se deben cargar las configuraciones de todo el sistema, así como el parámetro GIT_CONFIG_GLOBAL para anular la configuración específica del usuario en $HOME/.git al establecer la variable GIT_CONFIG_SYSTEM.

Otro de los cambios que se han realizado, es que ahora cuando se usa la segunda versión del protocolo de comunicación Git, al ejecutar «git push», se implementa la definición en el lado receptor, lo que hizo posible llevar la eficiencia de «git push» al nivel de «git search» y eliminar la carga de objetos que no son necesarios.

La opción «–trailer<key>[=<value>]» se ha agregado al comando «git commit», lo que hace que sea más fácil adjuntar su propia información estructurada en el formato de clave/valor a la confirmación, que luego puede ser procesado por el comando «interpret-trailers«.

También se destaca que se agregó la opción «–reject-shallow» a «git clone» para deshabilitar la clonación de repositorios en modo superficial (sin historial de cambios completo), además de que se ha agregado un modo de ocultar correo electrónico a gitweb, que reemplaza las cadenas de correo electrónico en la salida.

Se ha cambiado la lógica de procesamiento del comando «git apply –3way«, que ahora primero intenta aplicar el algoritmo de combinación de tres vías y solo en caso de falla o conflicto se revierte a la aplicación de parche habitual (anteriormente fue al revés).

Se agregó la opción «–diff-merges =<style>» al comando «git log» y la configuración log.diffMerges para seleccionar el modo predeterminado, asi como también una protección adicional a los comandos «git add» y «git rm» contra la modificación de datos en rutas fuera del alcance de la operación de pago disperso.

  • La opción «–filter = object: type =<type>» se ha agregado al comando «git rev-list» para excluir un cierto tipo de objetos del archivo paquete generado por el comando pack-objects.
  • No se permiten valores negativos en git pack-objects para opciones que toman valores numéricos, como –window y –depth.
  • En el comando «git apply» se permite especificar las opciones «–3way» y «–cached» al mismo tiempo.
  • El comando «git commit» tiene una versión extendida de la opción «–fixup» (creando una confirmación para «rebase –autosquash»).
  • El comando «git send-email» ha tenido en cuenta la configuración de core.hooksPath.
    Se permiten contadores que no sean enteros en git format-patch -v <n>.
  • Se agregó una interfaz IPC simple para crear servicios como fsmonitor.
  • Detenido el procesamiento de archivos».gitattributes», «.gitignore» y «.mailmap» si son enlaces simbólicos.
    Para el transporte HTTP, se ha agregado soporte para almacenar en caché una contraseña utilizada con éxito para desbloquear un certificado.
  • El comando «git stash show» tiene la capacidad de mostrar la parte sin seguimiento del almacén de archivos de almacenamiento temporal.
    Se ha propuesto una estrategia más avanzada para reempaquetar un repositorio usando el comando «git repack«, que permite reducir el consumo de recursos durante el reempaquetado.

Finalmente si estás interesado en conocer más al respecto sobre esta nueva versión, puedes consultar los detalles en el siguiente enlace.


El contenido del artículo se adhiere a nuestros principios de ética editorial. Para notificar un error pincha aquí.

Sé el primero en comentar

Deja tu comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

  1. Responsable de los datos: Miguel Ángel Gatón
  2. Finalidad de los datos: Controlar el SPAM, gestión de comentarios.
  3. Legitimación: Tu consentimiento
  4. Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal.
  5. Almacenamiento de los datos: Base de datos alojada en Occentus Networks (UE)
  6. Derechos: En cualquier momento puedes limitar, recuperar y borrar tu información.