Versió de control de font de Git 2.35

Després de dos mesos de desenvolupament, s'ha llançat el sistema de control de codi font distribuït Git 2.35. 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 494 canvis, preparats amb la participació de 93 desenvolupadors, dels quals 35 van participar en el desenvolupament per primera vegada. Principals innovacions:

  • S'han ampliat les possibilitats d'utilitzar claus SSH per signar digitalment objectes Git. Per limitar el període de validesa de diverses claus, s'ha afegit suport per a les directives OpenSSH "valid-before" i "valid-after", amb les quals podeu garantir el correcte funcionament de les signatures després que la clau hagi estat rotada per un dels desenvolupadors. Abans d'això, hi havia un problema amb la separació de signatures per la clau antiga i la nova: si suprimiu la clau antiga, serà impossible verificar les signatures fetes amb ella i, si la deixeu, serà possible crear noves signatures amb la clau antiga, que ja ha estat substituïda per una altra clau. Utilitzant valid-before i valid-after podeu separar l'abast de les claus en funció del moment en què es va crear la signatura.
  • A la configuració merge.conflictStyle, que us permet seleccionar el mode per mostrar informació sobre conflictes durant una fusió, ha aparegut el suport per al mode "zdiff3", que mou totes les línies estàndard especificades al principi o al final del conflicte fora del conflicte. àrea, que permet una presentació més compacta de la informació.
  • El mode "--staged" s'ha afegit a l'ordre "git stash", que us permet amagar només els canvis afegits a l'índex, per exemple en una situació en què necessiteu ajornar temporalment alguns dels canvis complexos per tal de primer afegir el que ja està llest i tractar amb la resta al cap d'una estona. El mode és similar a l'ordre "git commit", escrivint només els canvis col·locats a l'índex, però en lloc de crear un nou commit a "git stash —staged", el resultat s'emmagatzema a l'àrea temporal de l'emmagatzematge. Un cop necessaris els canvis, es poden revertir amb l'ordre "git stash pop".
  • S'ha afegit un nou especificador de format a l'ordre "git log", "-format=%(describe)", que us permet combinar la sortida de "git log" amb la sortida de l'ordre "git describe". Els paràmetres de "git describe" s'especifiquen directament dins de l'especificador ("-format=%(describe:match= ,exclou= )"), en què també podeu incloure etiquetes escurçades ("—format=%(describe:tags= )") i configureu el nombre de caràcters hexadecimals per identificar objectes ("—format=%(describe:abbrev= )")). Per exemple, per llistar els darrers 8 commits les etiquetes de les quals no tenen una etiqueta candidata al llançament i especificant identificadors de 8 caràcters, podeu utilitzar l'ordre: $ git log -8 —format='%(describe:exclude=*-rc *,abbrev=13 )' v2.34.1-646-gaf4e5f569bc89 v2.34.1-644-g0330edb239c24 v2.33.1-641-g15f002812f858 v2.34.1-643-g2edb95c94 v056-2.34.1-g642f56f95 v8-7-g2.34.1edb203c9 gb2980902bd2.34.1 bbc640f3 v41-212-gffb2.34.1f639d v36-65715- gdf4132cXNUMXadebXNUMX vXNUMX-XNUMX-gXNUMXbXNUMXaXNUMX
  • La configuració user.signingKey ara admet nous tipus de claus que no es limiten al tipus "ssh-" i que especifiquen la ruta completa del fitxer a la clau. Els tipus alternatius s'especifiquen mitjançant el prefix "key::", per exemple "key::ecdsa-sha2-nistp256" per a les claus ECDSA.
  • S'ha augmentat notablement la velocitat de generació d'una llista de canvis en el mode "—histograma", així com quan s'utilitza l'opció "—color-moved-ws", que controla el ressaltat dels espais en la diferència de color.
  • L'ordre "git jump", que s'utilitza per proporcionar a Vim informació sobre el salt exacte a la posició desitjada en un fitxer quan s'analitza els conflictes de combinació, es visualitza les diferències o es realitza una operació de cerca, ofereix la possibilitat de reduir els conflictes de combinació coberts. Per exemple, per limitar les operacions només al directori "foo", podeu especificar "git jump merge - foo" i per excloure del processament el directori "Documentation" - "git jump merge - ':^Documentation'"
  • S'ha treballat per estandarditzar l'ús del tipus "size_t" en comptes de "unsigned long" per als valors que representen la mida dels objectes, fet que va permetre utilitzar filtres "netejar" i "tacar" amb fitxers de més de 4 GB. a totes les plataformes, incloses les plataformes amb el model de dades LLP64 , el tipus "sense signar llarg" en què està limitat a 4 bytes.
  • S'ha afegit l'opció "-empty=(stop|drop|keep)" a l'ordre "git am", que us permet seleccionar el comportament dels missatges buits que no contenen pedaços en analitzar els pedaços de la bústia de correu. El valor "stop" finalitzarà tota l'operació de pegat, "drop" saltarà un pedaç buit i "keep" crearà un commit buit.
  • S'ha afegit suport per a índexs parcials (índex escàs) a les ordres "git reset", "git diff", "git blame", "git fetch", "git pull" i "git ls-files" per millorar el rendiment i estalviar espai a repositoris , en els quals es realitzen operacions de clonació parcial (sparse-checkout).
  • L'ordre "git sparse-checkout init" ha estat obsoleta i s'ha de substituir per "git sparse-checkout set".
  • S'ha afegit la implementació inicial d'un nou backend "reftable" per emmagatzemar referències com branques i etiquetes al repositori. El nou backend utilitza l'emmagatzematge de blocs utilitzat pel projecte JGit i està optimitzat per emmagatzemar un gran nombre de referències. El backend encara no està integrat amb el sistema de referència i no està preparat per a un ús pràctic.
  • La paleta de colors de l'ordre "git grep" s'ha ajustat perquè coincideixi amb la utilitat grep de GNU.

Font: opennet.ru

Afegeix comentari