Versió de control de font de Git 2.38

S'ha anunciat el llançament del sistema de control de codi font distribuït Git 2.38. Git és un dels sistemes de control de versions més populars, fiables i d'alt rendiment, que ofereix eines de desenvolupament flexibles no lineals basades en ramificacions i fusions. Per garantir la integritat de l'historial i la resistència als canvis retroactius, en cada commit s'utilitza el hashing implícit de tot l'historial anterior; també és possible certificar etiquetes individuals i commits amb signatures digitals dels desenvolupadors.

En comparació amb la versió anterior, la nova versió va incloure 699 canvis preparats amb la participació de 92 desenvolupadors, dels quals 24 van participar en el desenvolupament per primera vegada. Principals innovacions:

  • L'estructura principal inclou la utilitat "escalar", desenvolupada per Microsoft per gestionar grans dipòsits. La utilitat es va escriure originalment en C#, però git inclou una versió modificada en C. La nova utilitat difereix de l'ordre git en activar de manera predeterminada funcions i paràmetres addicionals que afecten el rendiment quan es treballa amb dipòsits molt grans. Per exemple, quan s'utilitza escalar s'aplica:
    • Clonació parcial per treballar amb una còpia incompleta del repositori.
    • Mecanisme integrat per fer el seguiment dels canvis al sistema de fitxers (FSMonitor), que us permet fer-ho sense buscar a tot el directori de treball.
    • Índexs que cobreixen objectes en diferents fitxers de paquets (multi-pack).
    • fitxers commit-graph amb un índex de commit graph utilitzat per optimitzar l'accés a la informació de commit.
    • Treball periòdic de fons per mantenir l'estructura òptima del dipòsit en segon pla, sense bloquejar la sessió interactiva (es treballa una vegada per hora per descarregar de manera proactiva objectes nous del dipòsit remot i actualitzar el fitxer amb el gràfic de commit i el procés d'empaquetat). el repositori s'inicia cada nit).
    • Mode "sparseCheckoutCone", que limita els patrons permesos durant la clonació parcial.
  • S'ha afegit una opció --update-refs a l'ordre "git rebase" per actualitzar les branques dependents que se superposen amb les branques que es mouen, en lloc d'haver de comprovar manualment cada branca dependent per canviar a la confirmació necessària.
  • Va fer que l'ordre "git rm" fos compatible amb índexs parcials.
  • S'ha millorat el comportament de l'ordre "git mv AB" quan es mou un fitxer d'un espai de treball amb índexs parcials en mode "con" a un àmbit extern que no té aquest mode.
  • El format del fitxer de mapa de bits s'ha optimitzat per treballar amb repositoris grans: s'ha afegit una taula d'índex opcional amb una llista de les confirmacions seleccionades i els seus desplaçaments.
  • L'ordre "git merge-tree" implementa un nou mode en el qual, a partir de dos commits especificats, es calcula un arbre amb el resultat de la fusió, com si els historials d'aquests commits es fusionessin.
  • S'ha afegit la configuració "safe.barerepository" per controlar la capacitat d'allotjar dipòsits nus (repositoris que no contenen un arbre de treball) dins d'altres dipòsits git. Quan es defineix com a "explícit", serà possible treballar amb repositoris nus situats només al directori superior. Per poder col·locar repositoris nus als subdirectoris, utilitzeu el valor "tot".
  • L'ordre "git grep" ha afegit l'opció "-m" ("—max-count"), que és similar a l'opció del mateix nom a GNU grep i us permet limitar el nombre de coincidències que es mostren.
  • L'ordre "ls-files" implementa l'opció "--format" per configurar els camps de sortida (per exemple, podeu habilitar la sortida del nom de l'objecte, els modes, etc.).
  • A "git cat-file", en mostrar el contingut dels objectes, és possible tenir en compte els enllaços autor-correu electrònic especificats al fitxer mailmap.

Font: opennet.ru

Afegeix comentari