Está disponible el sistema de control de versiones Git 2.43

Después de tres meses de desarrollo, se ha publicado la versión 2.43 del sistema distribuido de control de versiones Git. Git es uno de los sistemas de control de versiones más populares, confiables y de alto rendimiento, proporcionando herramientas flexibles para el desarrollo no lineal, basadas en bifurcaciones y fusiones de ramas. Para garantizar la integridad del historial y la resistencia a los cambios retroactivos, se utiliza un hashing implícito de todo el historial anterior en cada commit. También es posible verificar digitalmente las firmas de los desarrolladores en etiquetas y commits individuales.

En comparación con la versión anterior, se han integrado 464 cambios en esta nueva versión, realizados con la participación de 80 desarrolladores, de los cuales 17 participaron por primera vez en el desarrollo. Las principales novedades son:

  • Se han agregado las opciones «—filter» y «—filter-to» al comando «git repack», que permiten realizar la reempaquetación del repositorio considerando un filtro de objetos especificado, y trasladar a un lugar separado los objetos que no cumplen con el filtro dado. Estas opciones se pueden usar para dividir el repositorio de acuerdo con ciertos criterios (por ejemplo, para eliminar objetos innecesarios o demasiado grandes), manteniendo la accesibilidad a todas las partes mediante clonación parcial. Por ejemplo, para mantener en el repositorio blobs de menos de 1 MB y mover los demás objetos grandes a un repositorio separado, se puede ejecutar: $ git init —bare ../backup.git $ git repack -ad —filter='blob:limit=1m' \ —filter-to=../backup.git/objects/pack/pack

    La inicialización de un repositorio mediante clonación parcial permite trabajar con una copia incompleta del repositorio, gestionando correctamente las solicitudes a objetos ausentes (al solicitar objetos ausentes, estos se descargarán sobre la marcha según sea necesario).

  • Se ha añadido la posibilidad de trabajar con varios archivos pack que contienen información sobre objetos inalcanzables ("cruft packs"), a los que no hay referencias en el repositorio (no son referenciados por ramas o etiquetas). Con la nueva opción «git repack —max-cruft-size» se puede establecer el tamaño máximo de un archivo pack individual y lograr la división de la base de objetos inalcanzables en una serie de archivos pack de tamaño pequeño. Usar varios archivos pack pequeños en lugar de uno grande permite reducir significativamente las operaciones de entrada/salida al reempaquetar repositorios con un gran número de objetos inalcanzables, ya que no será necesario reescribir todos los datos para cada operación de reempaquetado.
  • Se ha añadido el reconocimiento de intentos de realizar una doble reversión de commits a través de «git revert» y se tiene en cuenta este hecho al formar el mensaje de reversión (en lugar de «Revert: Revert: fix bug» al revertir de nuevo se registrará «Reapply fix bug», y si se revertir el cambio una tercera vez — «Revert Reapply fix bug»). $ git revert —no-edit HEAD > /dev/null $ git revert —no-edit HEAD > /dev/null $ git log —oneline a300922 (HEAD -> main) Reapply «fix bug» 0050730 Revert «fix bug» b290810 fix bug
  • Se ha permitido el uso conjunto de las opciones «—rfc» y «—subject-prefix». Por ejemplo, para formar un correo con el prefijo «[RFC PATCH bpf-next]» en el tema del mensaje se puede especificar: $ git format-patch —subject-prefix="PATCH bpf-next" —rfc
  • En el comando «git log» se ha permitido especificar el marcador «%(decorate)» para mostrar los nombres de las ramas relacionadas al definir el formato con la opción «—format», por ejemplo: $ git log —format='%cr%(decorate) (%h) %s' hace 3 días (HEAD -> master, origin/master, origin/HEAD) (e0939bec27) RelNotes: correcciones menores en las notas de lanzamiento de la versión 2.43.0 hace 7 días (tag: v2.43.0-rc1) (dadef801b3) Git 2.43-rc1 hace 7 días (8ed4eb7538) Fusionar rama ‘tb/rev-list-unpacked-fix’
  • En «git for-each-ref» y comandos similares se ha añadido la posibilidad de aplicar reglas .mailmap a los especificadores de formato que se indiquen a través de la opción «—format», tales como «%(authorname)» y «%(committeremail)».

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster