Lanzamento do sistema de control de fonte distribuído Git 2.26
Dispoñible liberación dun sistema de control de fonte distribuído git 2.26.0. Git é un dos sistemas de control de versións máis populares, fiables e de alto rendemento, que ofrece ferramentas de desenvolvemento flexibles e non lineais baseadas en ramificación e fusión. Para garantir a integridade do historial e a resistencia aos cambios retroactivos, en cada commit utilízase o hash implícito de todo o historial anterior; tamén é posible certificar etiquetas e commits individuais con sinaturas dixitais dos desenvolvedores.
En comparación coa versión anterior, a nova versión incluía 504 cambios, elaborados coa participación de 64 desenvolvedores, dos cales 12 participaron no desenvolvemento por primeira vez. O principalinnovacións:
Cambiouse ao valor predeterminado segunda versión Protocolo de comunicación Git, que se usa cando un cliente se conecta remotamente a un servidor Git. A segunda versión do protocolo destaca por ofrecer a capacidade de filtrar ramas e etiquetas no lado do servidor, devolvendo unha lista acurtada de ligazóns ao cliente. Anteriormente, calquera comando de extracción enviaba sempre ao cliente a lista completa de referencias en todo o repositorio, mesmo cando o cliente só estaba actualizando unha rama ou comprobando que a súa copia do repositorio estaba actualizada. Outra novidade notable é a posibilidade de engadir novas capacidades ao protocolo a medida que novas funcionalidades están dispoñibles no conxunto de ferramentas. O código do cliente segue sendo compatible co protocolo antigo e pode seguir funcionando tanto con servidores novos como antigos, volvendo automaticamente á primeira versión se o servidor non admite a segunda.
A opción "-show-scope" engadiuse ao comando "git config", o que facilita a identificación do lugar onde se definen determinadas opcións. Git permítelle definir a configuración en diferentes lugares: no repositorio (.git/info/config), no directorio de usuarios (~/.gitconfig), no ficheiro de configuración de todo o sistema (/etc/gitconfig) e a través do comando opcións de liña e variables de ambiente. Ao executar "git config" é bastante difícil entender onde se define exactamente a configuración desexada. Para solucionar este problema, estaba dispoñible a opción "--show-origin", pero só mostra a ruta do ficheiro no que se define a configuración, o que é útil se queres editar o ficheiro, pero non axuda se cómpre cambiar o valor a través de "git config" usando as opcións "--system", "--global" ou "-local". A nova opción "--show-scope" mostra o contexto da definición da variable e pódese usar xunto con -show-origin:
Na configuración de encadernación credenciais Permítese o uso de máscaras nos URL. Calquera configuración e credenciais HTTP en Git pódense configurar tanto para todas as conexións (http.extraHeader, credential.helper) como para as conexións baseadas en URL (credential.https://example.com.helper, credential.https: //example. com.axudante). Ata agora, os comodíns como *.example.com só se permitían para a configuración HTTP, pero non eran compatibles coa vinculación de credenciais. En Git 2.26, estas diferenzas elimínanse e, por exemplo, para vincular un nome de usuario a todos os subdominios agora podes especificar:
[credencial "https://*.example.com"]
nome de usuario = ttaylorr
A expansión do soporte experimental para a clonación parcial (clons parciais) continúa, o que lle permite transferir só parte dos datos e traballar cunha copia incompleta do repositorio. A nova versión engade un novo comando "git sparse-checkout add", que lle permite engadir directorios individuais para aplicar a operación "checkout" só a parte da árbore de traballo, en lugar de listar todos eses directorios á vez mediante o comando "git". sparse-checkout set" (pode engadir un por un directorio, sen volver especificar toda a lista cada vez).
Por exemplo, para clonar un repositorio git/git sen cometer blobs, limitando o checkout só ao directorio raíz da copia de traballo e marcando por separado checkout para os directorios "t" e "Documentation", podes especificar:
$ git sparse-checkout engadir t
....
$ git sparse-checkout engadir documentación
....
$ git lista de compra dispersa
documentación
t
Mellorouse significativamente o rendemento do comando "git grep", usado para buscar tanto os contidos actuais do repositorio como as revisións históricas. Para acelerar a busca, era posible escanear o contido da árbore de traballo usando varios fíos ("git grep -threads"), pero a busca nas revisións históricas era dun só fío. Agora eliminouse esta limitación implementando a capacidade de paralelizar as operacións de lectura desde o almacenamento de obxectos. De forma predeterminada, o número de fíos defínese igual ao número de núcleos de CPU, o que na maioría dos casos agora non require configurar de forma explícita a opción "-threads".
Engadido soporte para o autocompletado de entrada de subcomandos, camiños, ligazóns e outros argumentos do comando "git worktree", que che permite traballar con varias copias de traballo do repositorio.
Engadido soporte para cores brillantes que teñen secuencias de escape ANSI. Por exemplo, na configuración das cores destacadas “git config –color” ou “git diff –color-moved” pode especificar “%C(brightblue)” mediante a opción “--format” para o azul brillante.
Engadida unha nova versión do script fsmonitor-vixiante, proporcionando integración co mecanismo Facebook Watchman para acelerar o seguimento dos cambios de ficheiros e a aparición de novos ficheiros. Despois de actualizar é necesario git заменить gancho no repositorio.
Engadíronse optimizacións para acelerar os clons parciais ao usar mapas de bits
(maquinaria de mapa de bits) para evitar unha busca completa de todos os obxectos ao filtrar a saída. Agora realízase a comprobación de blobs (—filter=blob:none e —filter=blob:limit=n) durante a clonación parcial
significativamente máis rápido. GitHub anunciou parches con estas optimizacións e soporte experimental para a clonación parcial.
O comando "git rebase" moveuse a un backend diferente, usando o mecanismo predeterminado "merge" (usado anteriormente para "rebase -i") en lugar de "parche+aplicar". Os backends difiren nalgúns pequenos aspectos, por exemplo, despois de continuar unha operación despois de resolver un conflito (git rebase --continue), o novo backend ofrece editar a mensaxe de confirmación, mentres que o antigo simplemente utilizaba a antiga mensaxe. Para volver ao comportamento antigo, pode usar a opción "--apply" ou establecer a variable de configuración "rebase.backend" en "aplicar".
Un exemplo de manejador para os parámetros de autenticación especificados a través de .netrc reduciuse a un formulario axeitado para o seu uso.
Engadiuse a configuración gpg.minTrustLevel para establecer o nivel de confianza mínimo para varios elementos que realizan a verificación da sinatura dixital.
Engadiuse a opción "--pathspec-from-file" a "git rm" e "git stash".
A mellora dos conxuntos de probas continuou en preparación para a transición ao algoritmo de hash SHA-2 en lugar de SHA-1.