Versión de control de fonte de Git 2.36

Despois de tres meses de desenvolvemento, publicouse o lanzamento do sistema de control de fontes distribuído Git 2.36. 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 de ramas. Para garantir a integridade do historial e a resistencia aos cambios retroactivos, utilízase o hash implícito de todo o historial anterior en cada commit, tamén é posible verificar etiquetas individuais e commits con sinaturas dixitais dos desenvolvedores.

En comparación coa versión anterior, aceptáronse 717 cambios na nova versión, preparada coa participación de 96 desenvolvedores, dos cales 26 participaron no desenvolvemento por primeira vez. Principais novidades:

  • A opción "-remerge-diff" engadiuse aos comandos "git log" e "git show", o que lle permite mostrar as diferenzas entre o resultado global da combinación e os datos reais reflectidos na confirmación despois de procesar o " merge", que lle permite avaliar visualmente os cambios realizados como resultado da resolución de conflitos de combinación. O comando habitual "git show" separa diferentes resolucións de conflitos con sangría, o que dificulta a comprensión dos cambios. Por exemplo, na seguinte captura de pantalla, a liña "+/-" sen sangría mostra a última resolución de conflito asociada ao cambio de nome na primeira rama de sha1 a oid no comentario, e "+/-" con sangría mostra o conflito inicial resolución causada pola aparición dun argumento adicional na segunda rama da función dwim_ref().
    Versión de control de fonte de Git 2.36

    Cando se utiliza a opción "--remerge-diff", as diferenzas entre as resolucións de conflitos non se separan para cada rama principal, pero móstranse as diferenzas xerais entre un ficheiro que ten conflitos de combinación e un ficheiro que ten conflitos resoltos.

    Versión de control de fonte de Git 2.36

  • Mellora a flexibilidade na personalización do comportamento de vaciar cachés de disco mediante a chamada á función fsync(). O parámetro core.fsyncObjectFiles dispoñible anteriormente dividiuse en dúas variables de configuración core.fsync e core.fsyncMethod para permitir que fsync se aplique non só aos ficheiros de obxectos (.git/objects) senón tamén a outras estruturas git como referencias (.git). /refs), reflog e pack ficheiros.

    A través da variable core.fsync, pode especificar unha lista de estruturas Git internas, despois da operación de escritura, fsync chamarase adicionalmente para elas. A variable core.fsyncMethod permítelle seleccionar un método para limpar a caché, por exemplo, pode seleccionar fsync para usar a chamada do sistema co mesmo nome, ou especificar só escritura para usar a redacción pendente (escritura de caché de páxina).

  • Para protexerse contra vulnerabilidades que manipulan a substitución de directorios .git por outros usuarios en particións compartidas, reforzouse a verificación do propietario do repositorio. Agora só se permite executar calquera comando git nos seus propios directorios ".git". Se o directorio do repositorio é propiedade doutro usuario, lanzarase un erro por defecto. Este comportamento pódese desactivar mediante a configuración safe.directory.
  • Engadiuse a opción --batch-command ao comando "git cat-file", que está destinado a mostrar o contido orixinal dos obxectos Git, complementando os comandos "--batch" e "--batch-check" previamente dispoñibles co capacidade de seleccionar de forma adaptativa o tipo de saída mediante a indicación "contidos <obxecto>" para mostrar o contido, ou "información <obxecto>" para mostrar información sobre o obxecto. Ademais, o comando "flush" é compatible para limpar o búfer de saída.
  • A opción "-oid-only" ("--object-only") engadiuse ao comando "git ls-tree", que está destinado a listar o contido dunha árbore de obxectos que, por analoxía con "-- só nome", mostra só os identificadores de obxectos para simplificar a chamada dos scripts. Tamén se implementou a opción "--format", que lle permite definir o seu propio formato de saída combinando información de modo, tipo, nome e tamaño.
  • No comando "git bisect run", implícase a definición de non establecer o signo dun ficheiro executable para o script e de producir erros cos códigos 126 ou 127 neste caso (anteriormente, se non se podía executar o script, todas as revisións eran marcado como con problemas).
  • Engadiuse a opción "--refetch" ao comando "git fetch" para buscar todos os obxectos sen informar ao outro lado do contido que xa está no sistema local. Este comportamento pode ser útil para restaurar o estado despois de fallos cando non hai certeza sobre a integridade dos datos locais.
  • Engadiuse soporte para índices dispersos aos comandos git update-index, git checkout-index, git read-tree e git clean para mellorar o rendemento e aforrar espazo nos repositorios que realizan índices escasos. clonación (sparse-checkout).
  • Cambiouse o comportamento do comando "git clone --filter=... --recurse-submodules", o que agora leva á clonación parcial dos submódulos (anteriormente, ao executar tales comandos, o filtro aplicábase só ao contido principal). , e os submódulos clonáronse completamente sen ter en conta o filtro).
  • Engadiuse ao comando "git bundle" compatibilidade para especificar filtros para a colocación selectiva de contido, semellante ás operacións de clonación parcial.
  • Engadiuse a opción "--recurse-submodules" ao comando "git branch" para atravesar submódulos de forma recursiva.
  • Userdiff propuxo un novo controlador para a linguaxe Kotlin.

Fonte: opennet.ru

Engadir un comentario