Se lanza Git 2.53, un sistema distribuido de gestión de código fuente. Git ofrece un alto rendimiento y capacidades de desarrollo no lineal basadas en ramificaciones y fusiones. Para garantizar la integridad histórica y la resistencia a cambios retroactivos, utiliza hash implícito de todo el historial previo en cada confirmación, así como firmas digitales de etiquetas y confirmaciones individuales. Git se licencia bajo la GPLv2+.
En comparación con la versión anterior, la nueva versión incluye 466 cambios, aportados por 70 desarrolladores (21 de ellos nuevos en el desarrollo con Git). Entre las principales novedades se incluyen:
- Se ha añadido la posibilidad de aplicar la estrategia de empaquetado de repositorios "geométrica" ("git repack --geometric") a repositorios externos parcialmente clonados que se ejecutan en modo "promisor" (los objetos faltantes se descargan según sea necesario). Al reempaquetar con la opción "--geometric", los archivos de empaquetado con la extensión ".promisor" se procesan y empaquetan por separado. La estrategia "geométrica" reduce el tiempo de mantenimiento de grandes monorepositorios al reempaquetar objetos selectivamente y eliminar operaciones innecesarias que consumen muchos recursos, como la fusión de todos los archivos de empaquetado (se conserva la progresión geométrica del tamaño de los archivos de empaquetado, lo que requiere que cada archivo de empaquetado posterior tenga al menos el doble del tamaño del anterior).
- El comando "git fast-import" ahora incluye la opción "--signed-commits=strip-if-invalid" para eliminar las firmas digitales de los objetos importados que se han vuelto inválidas tras sobrescribir parte del historial del repositorio. Anteriormente, era posible importar o eliminar todas las firmas, sin distinguir entre las válidas y las inválidas. La opción "strip-if-invalid" permite implementar herramientas para preservar las firmas válidas y volver a firmar objetos con firmas caducadas.
- La salida del comando 'git repo structure' ahora muestra el tamaño de todos los objetos alcanzables en el repositorio, desglosados por tipo. La información ahora se muestra en un formato legible para humanos con unidades de medida y se muestra por separado para el tamaño real y el tamaño ocupado en disco, lo que permite estimar el tamaño total del repositorio en disco. $ git repo structure | Repository structure | Value | | ——————— | ———- | | * References | | | * Count | 1.78 k | | * Branches | 5 | | * Tags | 1.03 k | | * Remotes | 749 | | * Others | 0 | | | | | * Reachable objects | | | * Count | 421.37 k | | * Commits | 88.03 k | | * Trees | 169.95 k | | * Blobs | 162.40 k | | * Tags | 994 | | * Inflated size | 7.61 GiB | | * Confirmaciones | 60.95 MiB | | * Árboles | 2.44 GiB | | * Blobs | 5.11 GiB | | * Etiquetas | 731.73 KiB | | * Tamaño del disco | 301.50 MiB | | * Confirmaciones | 33.57 MiB | | * Árboles | 77.92 MiB | | * Blobs | 189.44 MiB | | * Etiquetas | 578.13 KiB |
- El comando 'git maintenance' ahora tiene un subcomando 'is-needed' para realizar operaciones de mantenimiento del repositorio solo cuando sea necesario.
- El comando experimental "git replay" ahora actualiza las referencias en una transacción de forma predeterminada, en lugar de mostrar dónde deberían apuntar las referencias sin actualizar.
- El comando "git blame" ahora le permite elegir el algoritmo de evaluación de diferencias usando la opción "--diff-algorithm=". ".
- Se ha agregado la opción "--all" al comando "git repo info".
- Desde Git-for-Windows La compatibilidad con enlaces simbólicos se ha trasladado a la plataforma. Windows.
La versión anterior incluía una advertencia sobre la habilitación predeterminada de la compilación de componentes de Rust en Git 2.53. Sin embargo, Git 2.53 solo añadió algunas mejoras a la compatibilidad con Rust (como la posibilidad de compilar sin GNU sed). No obstante, la compilación con Rust sigue estando deshabilitada por defecto al usar Makefiles (requiere el indicador WITH_RUST) y se habilita automáticamente al usar Meson si el compilador rustc está presente. Git 3.0 pretende incluir las herramientas de Rust como una dependencia de compilación obligatoria.
Fuente: opennet.ru
