Lanzamiento del sistema de control de versiones Git 2.44

Después de tres meses de desarrollo, se ha publicado la versión 2.44 del sistema de control de versiones distribuido Git. Git es uno de los sistemas de control de versiones más populares, fiables y de alto rendimiento, que ofrece herramientas flexibles para el desarrollo no lineal, basadas en el ramificado y la fusión de ramas. Para garantizar la integridad del historial y la resistencia a cambios 'retroactivos', se utiliza un hashing implícito de todo el historial previo en cada commit, además de que es posible autenticar digitalmente ciertos tags y commits. El código de Git se distribuye bajo la licencia GPLv2+.

En comparación con la versión anterior, se han incorporado 503 cambios en esta nueva versión, realizados con la participación de 85 desarrolladores, de los cuales 34 han participado en el desarrollo por primera vez. Principales novedades:

  • Se ha añadido un nuevo comando 'git replay', que puede utilizarse como alternativa a 'git rebase' y emplearse para recrear el historial en servidor un repositorio bare (sin árbol de trabajo) y manejar varias ramas a la vez, realizar operaciones de rebase para ramas distintas a las extraídas en ese momento, o simplemente para acelerar las operaciones de fusión.
  • Se ha añadido soporte para el sistema de integración continua GitLab CI.
  • En los comandos 'git add' y 'git stash' se ha añadido soporte para atributos de rutas ':(attr:...)', definidos de manera análoga al comando 'git show'. Por ejemplo, 'git add ':(attr:~binary)'' se puede utilizar para añadir todos los archivos de texto (no binarios) al índice. Además, en esta nueva versión se ha propuesto el atributo 'builtin_objectmode' para filtrar las rutas de archivos según los permisos. Por ejemplo, 'git add ':(attr:builtin_objectmode=100755)'' se puede usar para añadir todos los archivos ejecutables.
  • Se ha añadido soporte para la reutilización de objetos distribuidos en varios archivos pack, para los cuales existe un índice de paquete múltiple (multi-pack-index) con datos sobre la disponibilidad de objetos (una optimización que permite, en lugar de transferir datos reales, referirse al uso de datos que ya están presentes en los archivos pack). A partir de la versión 2.44, git ahora puede manejar la reutilización de objetos a través de varios archivos pack, sin necesidad de reempaquetar el repositorio en un solo archivo pack. Para habilitar esta nueva función, se deben ejecutar los comandos: git config —global pack.allowPackReuse multi git multi-pack-index write —bitmap

    después de lo cual se puede rastrear el número de archivos pack de los que se reutilizan objetos en el valor 'pack-reused ... (from N)', que se muestra al ejecutar 'git push'.

  • El comando 'git rebase —autosquash' ahora se puede aplicar para operaciones de rebase en modo no interactivo, lo que permite realizar un rebase y aplicar rápidamente correcciones fixup sin revisar la lista de cambios y sin cambiar la variable de entorno GIT_SEQUENCE_EDITOR.
  • Se ha añadido la opción '—diff-algorithm' al comando 'git merge-file' para seleccionar un algoritmo alternativo de evaluación de diferencias entre archivos.
  • En el comando 'git checkout -B []' se ha prohibido la actualización y extracción de ramas que utilizan otro árbol de trabajo. Para restaurar el comportamiento anterior, se ha añadido la opción '—ignore-other-worktrees'.
  • Se ha agregado la posibilidad de asignar el valor 'true' a la configuración 'git config advice.pushAlreadyExists', que elimina del mensaje de salida (hint) la instrucción para desactivarlo ('Disable this message with…'), que ocupaba espacio en la pantalla.
  • Se ha optimizado la ejecución del comando 'git for-each-ref' con la opción '—no-sort', que ahora produce una salida en orden indefinido (anteriormente, al usar '—no-sort' seguía aplicándose una clasificación alfabética). Después de las optimizaciones, la aplicación de '—no-sort' ahora acelera 'git for-each-ref' aproximadamente un 20% en repositorios con un gran número de referencias.
  • En el backend de gestión de credenciales wincred se ha añadido soporte para la actualización de tokens OAuth, de manera similar a cómo está implementado en los backends credential-cache y credential-libsecret.
  • Se ha añadido soporte para el parámetro de configuración 'fetch.all' en 'git fetch', que se procesará de manera similar a la adición de la opción '—all' en la línea de comandos.

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