Versió de control de font de Git 2.36

Després de tres mesos de desenvolupament, s'ha llançat el sistema de control de codi font distribuït Git 2.36. 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, es van adoptar 717 canvis a la nova versió, preparada amb la participació de 96 desenvolupadors, dels quals 26 van participar en el desenvolupament per primera vegada. Principals innovacions:

  • Les ordres "git log" i "git show" ara tenen una opció "—remerge-diff" que us permet mostrar les diferències entre el resultat global de la fusió i les dades reals reflectides a la confirmació després de processar l'ordre "merge" , que permet avaluar clarament els canvis realitzats com a resultat de la resolució de conflictes de fusió. L'ordre normal "git show" sagna les diferents resolucions de conflictes, fent que els canvis siguin difícils d'entendre. Per exemple, a la captura de pantalla de sota de la línia "+/-" sense sagnat es mostra l'última resolució del conflicte associada amb el canvi de nom de sha1 a oid al comentari de la primera branca, i "+/-" amb sagnat mostra l'inici resolució del conflicte causat per l'aparició d'un argument addicional a la segona branca de la funció dwim_ref().
    Versió de control de font de Git 2.36

    Quan s'utilitza l'opció "--remerge-diff", les diferències entre les resolucions de conflictes no es separen per a cada branca principal, però es mostren les diferències generals entre el fitxer que té conflictes de combinació i el fitxer que té els conflictes resolts.

    Versió de control de font de Git 2.36

  • Augment de la flexibilitat en la configuració del comportament per netejar la memòria cau del disc mitjançant una crida a la funció fsync(). El paràmetre core.fsyncObjectFiles disponible anteriorment s'ha dividit en dues variables de configuració core.fsync i core.fsyncMethod, que ofereixen la possibilitat d'aplicar fsync no només als fitxers d'objectes (.git/objects), sinó també a altres estructures git com ara enllaços ( .git /refs), fitxers de reflog i paquet.

    Mitjançant la variable core.fsync, podeu especificar una llista d'estructures Git internes per a les quals es cridarà a més fsync després d'una operació d'escriptura. La variable core.fsyncMethod us permet seleccionar un mètode per esborrar la memòria cau, per exemple, podeu seleccionar fsync per utilitzar la trucada del sistema amb el mateix nom o especificar només escriptura per utilitzar la recuperació de la memòria cau de la pàgina.

  • Per protegir-se de les vulnerabilitats que manipulen la substitució dels directoris .git per part d'altres usuaris en seccions compartides, s'ha reforçat la verificació del propietari del dipòsit. L'execució de qualsevol ordre git ara només es permet als seus propis directoris ".git". Si el directori amb el repositori pertany a un altre usuari, es mostrarà un error per defecte. Aquest comportament es pot desactivar mitjançant la configuració safe.directory.
  • L'ordre "git cat-file", destinada a donar sortida al contingut d'origen dels objectes Git, s'ha complementat amb l'opció "—batch-command", que complementa les ordres "—batch" i "—batch-check" disponibles anteriorment amb la capacitat de seleccionar de manera adaptativa el tipus de sortida utilitzant "contingut <objecte>" per mostrar contingut o "informació <objecte>" per mostrar informació sobre l'objecte. A més, s'admet l'ordre "flush" per esborrar el buffer de sortida.
  • A l'ordre "git ls-tree", destinada a generar una llista del contingut d'un arbre d'objectes, s'ha afegit l'opció "—oid-only" ("—object-only"), similar a "—nom-només". ”, mostrant només identificadors d'objectes per simplificar la trucada dels scripts. També s'ha implementat l'opció "--format", que us permet definir el vostre propi format de sortida combinant informació sobre el mode, el tipus, el nom i la mida.
  • L'ordre "git bisect run" implementa la detecció de no establir la marca del fitxer executable per a un script i, en aquest cas, mostrar errors amb els codis 126 o 127 (anteriorment, si l'script no es podia executar, totes les revisions estaven marcades com a problemes) .
  • S'ha afegit una opció --refetch a l'ordre "git fetch" per obtenir tots els objectes sense informar l'altra part sobre el contingut que ja hi ha al sistema local. Aquest comportament pot ser útil per recuperar-se d'errors quan la integritat de les dades locals és incerta.
  • Les ordres "git update-index", "git checkout-index", "git read-tree" i "git clean" ara admeten índexs parcials (índex escàs) per millorar el rendiment i estalviar espai als dipòsits on es realitzen operacions parcials. (pagament escàs).
  • S'ha canviat el comportament de l'ordre "git clone —filter=... —recurse-submòduls", que ara porta a la clonació parcial dels submòduls (anteriorment, quan s'executaven aquestes ordres, el filtre només s'aplicava al contingut principal i els submòduls s'aplicaven). clonat completament sense tenir en compte el filtre).
  • L'ordre "git bundle" ha afegit suport per especificar filtres per col·locar contingut de manera selectiva, de manera similar a les operacions de clonació parcial.
  • S'ha afegit l'opció "--recurse-submòduls" a l'ordre "git branch" per recórrer els submòduls de manera recursiva.
  • Userdiff ofereix un nou controlador per a l'idioma Kotlin.

Font: opennet.ru

Afegeix comentari