Lanzamiento de control de fuente Git 2.50

Se ha lanzado el sistema de control de código fuente distribuido Git 2.50. Git es muy productivo y proporciona herramientas de desarrollo no lineales basadas en ramificaciones y fusiones. Para garantizar la integridad del historial y la resistencia a cambios retroactivos, se utiliza el hash implícito de todo el historial anterior en cada confirmación, así como firmas digitales de los desarrolladores de etiquetas y confirmaciones individuales. El código Git se distribuye bajo la licencia GPLv2+.

En comparación con la versión anterior, la nueva versión incluye 621 cambios, preparados con la participación de 98 desarrolladores, 35 de los cuales participan en el desarrollo por primera vez. Las principales innovaciones son:

  • Se ha ampliado la capacidad de dividir la base de datos de objetos inaccesibles ("cruft packs"), que no están referenciados en el repositorio (no referenciados por ramas ni etiquetas), en varios archivos de empaquetado. El uso de varios archivos de empaquetado pequeños en lugar de uno grande permite reducir significativamente las operaciones de E/S al reempaquetar repositorios con una gran cantidad de objetos inaccesibles, ya que en cada operación de reempaquetado no es necesario reescribir todos los datos.

    La nueva versión introduce la opción "--combine-cruft-below-size", que permite combinar archivos de paquete existentes con un tamaño inferior al especificado. A diferencia de la opción "--max-cruft-size" disponible anteriormente, la nueva opción "--combine-cruft-below-size" no limita el tamaño máximo del archivo de paquete resultante, lo que permite combinar archivos de paquete de forma más eficiente en repositorios con una gran cantidad de objetos inaccesibles distribuidos en varios archivos de paquete.

  • Se añadió soporte experimental para la actualización incremental de índices multipaquete MIDX, donde cada capa del índice MIDX con información sobre la disponibilidad de los objetos se almacena en un archivo de mapa de bits independiente. En repositorios muy grandes, el tipo de índice implementado permite agregar nuevos mapas de bits de la disponibilidad de los objetos de forma rápida y eficiente a medida que se reciben las confirmaciones.
  • El antiguo motor de fusión "recursivo" se ha eliminado del código base y se ha reemplazado por un motor "ORT" (el gemelo de Ostensiblemente Recursivo) completamente rediseñado, más potente, funcional y fácil de mantener. ORT permite determinar si dos objetos se pueden fusionar sin crear nuevos objetos en el repositorio (el motor anterior requería ejecutar el comando "git merge-tree --write-tree", que escribe nuevos objetos en el repositorio). En Git 2.50, el comando merge-tree incluye la opción "--quiet", que permite comprobar si la fusión se puede realizar según el código de retorno sin escribir datos en el repositorio.
  • Se agregó la opción "--filter" a "git cat-file --batch" y comandos similares para permitir omitir algunos objetos al realizar la operación. git cat-file --batch-check='%(objectname)' --filter='object:type=tree'
  • El comando de mantenimiento de Git tiene tres nuevas acciones: worktree-prune, rerere-gc y reflog-expire. worktree-prune está diseñado para eliminar worktrees obsoletos o dañados del repositorio. rerere-gc elimina las entradas antiguas que quedan después de resolver conflictos de fusión. reflog-expire elimina objetos obsoletos e inalcanzables del reflog.
  • Se agregó el comando "git reflog drop" que elimina todos los datos de reflog para la rama especificada.
  • Se ha optimizado el procesamiento y uso de enlaces, por ejemplo, se ha implementado el almacenamiento en caché de prefijos de enlaces, se han eliminado comprobaciones innecesarias al ejecutar el comando "git update-ref" y se ha aumentado la eficiencia de búsqueda de iteradores de enlaces existentes.
  • Se han agregado configuraciones KeepAlive para la biblioteca cURL: http.keepAliveIdle, http.keepAliveInterval y http.keepAliveCount.
  • El comando "git rev-list" tiene una opción para generar resultados en un formato legible por máquina, con cada campo separado por un carácter NUL.
  • Se han eliminado las dependencias de Perl necesarias para las utilidades de documentación y la ejecución de la suite de pruebas ("make test"). Muchos scripts de una sola línea de Perl en las pruebas se han reemplazado por funciones de shell o se han reescrito en C.
  • Se agregó el controlador userdiff para el formato de archivo de configuración ".ini".
  • El comando send-email ha mejorado la compatibilidad con el servidor SMTP de Outlook.

Fuente: opennet.ru

Añadir un comentario