Napovedana je bila izdaja porazdeljenega sistema za nadzor vira Git 2.38. Git je eden najbolj priljubljenih, zanesljivih in visoko zmogljivih sistemov za nadzor različic, ki zagotavlja prilagodljiva nelinearna razvojna orodja, ki temeljijo na razvejanju in združevanju. Da bi zagotovili celovitost zgodovine in odpornost proti retroaktivnim spremembam, je v vsaki objavi uporabljeno implicitno zgoščevanje celotne prejšnje zgodovine;
V primerjavi s prejšnjo izdajo je nova različica vsebovala 699 sprememb, pripravljenih s sodelovanjem 92 razvijalcev, od tega jih je 24 pri razvoju sodelovalo prvič. Glavne novosti:
- Osnovni paket vključuje pripomoček »scalar«, ki ga je razvil Microsoft za upravljanje velikih repozitorijev. Pripomoček je bil prvotno napisan v jeziku C#, vendar git vključuje prepisano različico v jeziku C. Novi pripomoček se od ukaza git razlikuje po tem, da privzeto vključuje dodatne funkcije in nastavitve, ki vplivajo na zmogljivost pri delu z zelo velikimi repozitoriji. Na primer, pri uporabi scalarja velja naslednje:
- Delno kloniranje za delo z nepopolno kopijo repozitorija.
- Vgrajen mehanizem za spremljanje sprememb datotečnega sistema (FSMonitor), ki odpravlja potrebo po pregledovanju celotnega delovnega imenika.
- Indeksi, ki zajemajo objekte v različnih paketnih datotekah (večpaket).
- Datoteke grafov zapisov z indeksom grafov zapisov, ki se uporabljajo za optimizacijo dostopa do informacij o zapisih.
- Periodična opravila v ozadju za vzdrževanje optimalne strukture repozitorija v ozadju brez blokiranja interaktivne seje (enkrat na uro se izvede opravilo preventivnega prenosa svežih objektov iz oddaljenega repozitorija in posodobitve datoteke grafa potrjevanja, postopek pakiranja repozitorija pa se izvaja vsako noč).
- Način »sparseCheckoutCone«, ki omejuje dovoljene vzorce pri delnem kloniranju.
- Ukaz git rebase ima zdaj možnost --update-refs za posodobitev odvisnih vej, ki se sekajo z vejami, ki se ponovno bazirajo, s čimer se odpravi potreba po ročnem prevzemu vsake odvisne veje za preklop na želeno potrditev (commit).
- Ukaz "git rm" je zdaj združljiv z delnimi indeksi.
- Izboljšano delovanje ukaza git mv AB pri premikanju datoteke iz delovnega prostora z delnimi indeksi v načinu stožca v zunanji delovni prostor, ki nima načina stožca.
- Oblika bitne slike je bila optimizirana za delo z velikimi repozitoriji – dodana je bila izbirna indeksna tabela s seznamom izbranih zapisov in njihovih odmikov.
- Ukaz "git merge-tree" implementira nov način, v katerem se na podlagi dveh določenih zapisov (commit) izračuna drevo z rezultatom združitve, kot da bi bile zgodovine teh zapisov združene.
- Dodana je bila nastavitev »safe.barerepository« za nadzor, ali je mogoče gole repozitorije (repozitorije, ki ne vsebujejo delujočega drevesa) namestiti v druge repozitorije Git. Če to nastavite na »explicit«, bodo gole repozitorije dovoljene le v imeniku najvišje ravni. Če želite dovoliti gole repozitorije v podimenikih, uporabite nastavitev »all«.
- Ukaz »git grep« ima zdaj možnost »-m« (»--max-count«), podobno kot možnost GNU grep z istim imenom, ki omogoča omejitev števila prikazanih zadetkov.
- Ukaz »ls-files« ima zdaj možnost »--format« za prilagajanje izhodnih polj (na primer, lahko omogočite izpis imena objekta, načinov itd.).
- V datoteki »git cat-file« je bila pri prikazu vsebine objektov implementirana možnost upoštevanja avtorjevih e-poštnih naslovov, navedenih v datoteki mailmap.
Vir: opennet.ru
