Git 2.36 allikajuhtimise väljalase

Pärast kolmekuulist arendustööd on välja antud hajutatud allika juhtimissüsteem Git 2.36. Git on üks populaarsemaid, usaldusväärsemaid ja suure jõudlusega versioonikontrollisüsteeme, mis pakub paindlikke mittelineaarseid arendustööriistu, mis põhinevad hargnemisel ja ühendamisel. Tagamaks ajaloo terviklikkust ja vastupanuvõimet tagasiulatuvatele muudatustele, kasutatakse iga commit puhul kogu eelneva ajaloo kaudset räsimist, samuti on võimalik üksikuid silte ja kohustusi sertifitseerida arendajate digiallkirjadega.

Võrreldes eelmise versiooniga võeti 717 arendaja osalusel koostatud uude versiooni vastu 96 muudatust, millest 26 osalesid arenduses esmakordselt. Peamised uuendused:

  • Käskudel "git log" ja "git show" on nüüd suvand "—remerge-diff", mis võimaldab teil näidata erinevusi liitmise üldtulemuse ja tegelike andmete vahel, mis kajastuvad kinnituses pärast käsu "merge" töötlemist. , mis võimaldab selgelt hinnata ühinemiskonfliktide lahendamise tulemusena tehtud muudatusi. Tavaline käsk "git show" taandab erinevaid konfliktilahendusi, muutes muudatused raskesti mõistetavaks. Näiteks rea all oleval ekraanipildil ilma taandeta "+/-" näitab konflikti viimast lahendust, mis on seotud sha1 ümbernimetamisega oidiks esimeses harus olevas kommentaaris ja "+/-" koos taandega näitab esialgset konflikti lahendamine, mis on põhjustatud täiendava argumendi ilmumisest funktsiooni dwim_ref() teises harus.
    Git 2.36 allikajuhtimise väljalase

    Suvandi "--remerge-diff" kasutamisel ei eraldata konfliktilahenduste erinevusi iga ülemharu puhul, vaid kuvatakse üldised erinevused liitmiskonfliktidega faili ja konflikte lahendatud faili vahel.

    Git 2.36 allikajuhtimise väljalase

  • Suurem paindlikkus ketta vahemälu tühjendamise käitumise konfigureerimisel funktsiooni fsync() kaudu. Varem saadaval olnud parameeter core.fsyncObjectFiles on jagatud kaheks konfiguratsioonimuutujaks core.fsync ja core.fsyncMethod, mis annab võimaluse rakendada fsynci mitte ainult objektifailidele (.git/objects), vaid ka teistele git-struktuuridele, näiteks linkidele ( .git /refs), reflog ja pakkida failid.

    Muutuja core.fsync abil saate määrata sisemiste Git-struktuuride loendi, mille jaoks fsynci pärast kirjutamistoimingut täiendavalt kutsutakse. Muutuja core.fsyncMethod võimaldab valida vahemälu tühjendamise meetodi, näiteks saate valida fsynci, et kasutada samanimelist süsteemikutset, või määrata lehe vahemälu tagasikirjutamise kasutamiseks ainult väljakirjutus.

  • Kaitseks haavatavuste eest, mis manipuleerivad teiste kasutajate .git-kataloogide asendamist jagatud jaotistega, on hoidla omaniku kontrollimist tugevdatud. Git-käskude täitmine on nüüd lubatud ainult tema enda ".git" kataloogides. Kui hoidlaga kataloog kuulub teisele kasutajale, kuvatakse vaikimisi tõrketeade. Selle käitumise saab keelata sätte safe.directory abil.
  • Git-objektide lähtesisu väljastamiseks mõeldud käsku “git cat-file” on täiendatud valikuga “--batch-command”, mis täiendab varem saadaolevaid “--batch” ja “--batch-check”. ” käsud, mis võimaldavad adaptiivselt valida väljundi tüüpi, kasutades sisu kuvamiseks käsku " sisu <objekt>" või "info <objekt>" objekti teabe kuvamiseks. Lisaks toetatakse väljundpuhvri loputamiseks käsku "loputus".
  • Käsule “git ls-tree”, mis on mõeldud objektipuu sisu loendi genereerimiseks, on lisatud suvand “-oid-only” (“-object-only”), mis sarnaneb käsuga “-only ”, mis kuvab skriptidest helistamise lihtsustamiseks ainult objekti identifikaatoreid. Rakendatud on ka suvand "--format", mis võimaldab teil määrata oma väljundvormingu, kombineerides teavet režiimi, tüübi, nime ja suuruse kohta.
  • Käsk “git bisect run” tuvastab skripti käivitatava faili lipu määramata jätmise ja sel juhul kuvab vead koodidega 126 või 127 (varem, kui skripti ei saanud käivitada, märgiti kõik versioonid probleemidena) .
  • Käsule "git fetch" lisati suvand --refetch, et tuua kõik objektid, teavitamata teist osapoolt juba kohalikus süsteemis olevast sisust. See käitumine võib olla kasulik riketest taastumisel, kui kohalike andmete terviklikkus on ebakindel.
  • Käsud "git update-index", "git checkout-index", "git read-tree" ja "git clean" toetavad nüüd osalisi indekseid (hõre indeks), et parandada jõudlust ja säästa ruumi hoidlates, kus teostatakse osatoiminguid. Kloonimine (hõre-kassasse).
  • Käsu “git clone —filter=… —recurse-submodules” käitumist on muudetud, mis viib nüüd alammoodulite osalise kloonimiseni (varem rakendati selliste käskude täitmisel filtrit ainult põhisisule ja alammoodulid olid täielikult kloonitud ilma filtrit arvesse võtmata).
  • Käsk "git bundle" on sarnaselt osalistele kloonimistoimingutele lisanud toe filtrite määramiseks sisu valikuliseks paigutamiseks.
  • Alammoodulite rekursiivseks läbimiseks on käsule "git branch" lisatud valik "--recurse-submodules".
  • Userdiff pakub Kotlini keele jaoks uut töötlejat.

Allikas: opennet.ru

Lisa kommentaar