Versión de control de fonte de Git 2.38

Anunciuse o lanzamento do sistema de control de fontes distribuído Git 2.38. 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íu 699 cambios, preparados coa participación de 92 desenvolvedores, dos cales 24 participaron no desenvolvemento por primeira vez. Principais novidades:

  • A estrutura principal inclúe a utilidade "escalar", desenvolvida por Microsoft para xestionar grandes repositorios. A utilidade foi escrita orixinalmente en C#, pero git inclúe unha versión modificada en C. A nova utilidade difire do comando git ao activar de forma predeterminada funcións e opcións adicionais que afectan o rendemento cando se traballa con repositorios moi grandes. Por exemplo, cando se usa escalar, aplícase:
    • Clonación parcial para traballar cunha copia incompleta do repositorio.
    • Mecanismo incorporado para rastrexar os cambios no sistema de ficheiros (FSMonitor), que permite prescindir de buscar por todo o directorio de traballo.
    • Índices que abarcan obxectos en diferentes ficheiros de paquetes (multi-pack).
    • ficheiros commit-graph cun índice gráfico de commit usado para optimizar o acceso á información de commit.
    • Traballo periódico en segundo plano para manter a estrutura óptima do repositorio en segundo plano, sen bloquear a sesión interactiva (o traballo realízase unha vez por hora para descargar de forma proactiva obxectos novos desde o repositorio remoto e actualizar o ficheiro co gráfico de commit e o proceso de empaquetado). o repositorio iníciase todas as noites).
    • Modo "sparseCheckoutCone", que limita os patróns permitidos durante a clonación parcial.
  • Engadiuse unha opción --update-refs ao comando "git rebase" para actualizar as ramas dependentes que se solapan coas ramas que se están movendo, en lugar de ter que comprobar manualmente cada rama dependente para cambiar á confirmación requirida.
  • Fixo o comando "git rm" compatible con índices parciais.
  • Mellorouse o comportamento do comando "git mv AB" ao mover un ficheiro dun espazo de traballo con índices parciais en modo "cono" a un ámbito externo que non teña este modo.
  • Optimizouse o formato de ficheiro de mapa de bits para traballar con grandes repositorios: engadiuse unha táboa de índice opcional cunha lista de confirmacións seleccionadas e as súas compensacións.
  • O comando "git merge-tree" implementa un novo modo no que, en base a dous commits especificados, calcúlase unha árbore co resultado da combinación, coma se os historiais destes commits estivesen fusionados.
  • Engadiuse a configuración "safe.barerepository" para controlar a capacidade de aloxar repositorios simples (repositorios que non conteñen unha árbore de traballo) dentro doutros repositorios git. Cando se define como "explícito", será posible traballar con repositorios simples situados só no directorio superior. Para poder colocar repositorios simples en subdirectorios, use o valor "todos".
  • O comando "git grep" engadiu a opción "-m" ("—max-count"), que é semellante á opción do mesmo nome en GNU grep e permite limitar o número de coincidencias que se mostran.
  • O comando "ls-files" implementa a opción "--format" para configurar os campos de saída (por exemplo, pode activar a saída do nome do obxecto, modos, etc.).
  • En "git cat-file", ao mostrar o contido dos obxectos, é posible ter en conta os enlaces de autor e correo electrónico especificados no ficheiro de mapa de correo.

Fonte: opennet.ru

Engadir un comentario