Lanzamiento del sistema de control de código fuente distribuido Git 2.27

Disponible lanzamiento del sistema de control de código fuente distribuido Git 2.27.0. Git es uno de los sistemas de control de versiones más populares, fiables y de alto rendimiento que proporciona herramientas de desarrollo no lineal flexibles basadas en bifurcaciones y fusiones de bifurcaciones. Para garantizar la integridad del historial y la resistencia a los cambios retroactivos, se utiliza un hash implícito de todo el historial anterior en cada confirmación, también es posible verificar etiquetas individuales y confirmaciones con firmas digitales de los desarrolladores.

En comparación con la versión anterior, la nueva versión incluyó 537 cambios, elaborados con la participación de 71 desarrolladores, de los cuales 19 participaron en el desarrollo por primera vez. Básico innovaciones:

  • Se revirtió la habilitación predeterminada implementada en la versión anterior. segunda versión Protocolo de comunicación Git, que se utiliza cuando un cliente se conecta de forma remota a un servidor Git. Se considera que el protocolo aún no está listo para su uso de forma predeterminada debido a la identificación de problemas resbaladizos que requieren una consideración por separado.
  • Se agregó un conjunto de opciones para configurar una conexión SSL al acceder a través de un proxy.
  • Se ha ampliado la información que se muestra al utilizar los filtros de transformación "limpiar" y "difuminar". Por ejemplo, ahora se muestra el objeto. arbolito, en el que aparece el blob que se va a convertir.
  • Para evitar confusiones, el comando "git describe" ahora siempre usa el modo de salida extendido ("--long") si se identifica una etiqueta reemplazada asociada con una confirmación (anteriormente, se generaba una etiqueta firmada o anotada que describía una confirmación incluso si era se cambió el nombre o se movió en la jerarquía “refs/tags/”, y el comando “git show tag^0” no funcionó como se esperaba: no se encontró “refs/tags/tag” o incluso se devolvió una etiqueta diferente).
  • Al ejecutar "git pull", ahora se emite una advertencia a menos que la variable de configuración pull.rebase esté configurada explícitamente y no se utilicen las opciones "--[no-]rebase" o "--ff-only". Para suprimir la advertencia para aquellos que no tienen intención de realizar una operación de cambio de base, la variable se puede establecer en falso.
  • Se han revisado las opciones de “git pull” comunes a “git fetch”. Se documentan opciones similares no mencionadas anteriormente y las opciones que faltan se pasan a git fetch.
  • Se agregó la opción "--no-gpg-sign" al comando "git rebase" para anular la configuración "commit.gpgSign".
  • Se agregó la capacidad de "git format-patch" para mostrar los encabezados "De:" y "Asunto:" sin cambios, sin convertir caracteres que no sean ASCII.
  • La opción "-show-pulls" se agregó al "git log", lo que le permite ver no solo las confirmaciones en las que se realizaron cambios, sino también la confirmación para fusionar estos cambios desde una rama separada.
  • Manejo de entrada interactivo unificado en todos los componentes y agregó una llamada a fflush() después de que se muestra el mensaje de entrada pero antes de la operación de lectura.
  • "git rebase" le permite volver a aplicar todas las confirmaciones locales sin realizar primero una operación de "compra", incluso si algunas de ellas se actualizaron previamente.
  • La variable de configuración 'pack.useSparse' se ha cambiado a 'true' para permitir optimizaciones que antes se consideraban experimentales de forma predeterminada.
  • Se agregó la opción "--autostash" a "git merge".
  • Interfaz mejorada de "pago disperso".
  • Se han agregado varias acciones nuevas a "git update-ref --stdin",
    permitiendo el control directo de las transacciones de actualización de enlaces, por ejemplo, para implementar actualizaciones de enlaces atómicos de dos etapas en múltiples repositorios.

  • Se agregaron plantillas de diferencia de usuario para documentos Markdown.
  • Se eliminó la restricción para excluir todas las rutas en plantillas de pago disperso que dan como resultado un árbol de trabajo vacío.
  • La operación "gitrestore --staged --worktree" ahora utiliza de forma predeterminada el contenido de la rama "HEAD" en lugar de generar un error.
  • Se continuó trabajando para cambiar al algoritmo hash SHA-2 en lugar de SHA-1.
  • Se ha reelaborado el código para interactuar con GnuPG.

Fuente: opennet.ru

Añadir un comentario