Izdaja za nadzor vira Git 2.36

Po treh mesecih razvoja je bil izdan porazdeljeni sistem za nadzor vira Git 2.36. 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. Za zagotovitev celovitosti zgodovine in odpornosti proti retroaktivnim spremembam se v vsaki objavi uporablja implicitno zgoščevanje celotne prejšnje zgodovine, možno je tudi certificiranje posameznih oznak in potrditev z digitalnimi podpisi razvijalcev.

V primerjavi s prejšnjo izdajo je bilo v novo različico sprejetih 717 sprememb, pripravljenih s sodelovanjem 96 razvijalcev, od tega jih je 26 pri razvoju sodelovalo prvič. Glavne novosti:

  • Ukaza »git log« in »git show« imata zdaj možnost »—remerge-diff«, ki vam omogoča prikaz razlik med skupnim rezultatom združevanja in dejanskimi podatki, ki se odražajo v objavi po obdelavi ukaza »spoji«. , ki vam omogoča jasno ovrednotenje sprememb, ki so nastale zaradi reševanja sporov združitve. Običajni ukaz "git show" zamakne različne rešitve sporov, zaradi česar je spremembe težko razumljive. Na primer, na posnetku zaslona pod vrstico »+/-« brez zamika je prikazana zadnja rešitev spora, povezanega s preimenovanjem sha1 v oid v komentarju v prvi veji, »+/-« z zamikom pa prikazuje začetni rešitev konflikta, ki ga povzroči pojav dodatnega argumenta v drugi veji v funkciji dwim_ref().
    Izdaja za nadzor vira Git 2.36

    Pri uporabi možnosti "--remerge-diff" razlike med razreševanjem sporov niso ločene za vsako nadrejeno vejo, ampak so prikazane splošne razlike med datoteko, ki ima spore spajanja, in datoteko, ki ima konflikte rešene.

    Izdaja za nadzor vira Git 2.36

  • Povečana prilagodljivost pri konfiguriranju vedenja za izpiranje diskovnih predpomnilnikov prek klica funkcije fsync(). Prej razpoložljivi parameter core.fsyncObjectFiles je bil razdeljen na dve konfiguracijski spremenljivki core.fsync in core.fsyncMethod, ki zagotavljata možnost uporabe fsync ne le za objektne datoteke (.git/objects), temveč tudi za druge strukture git, kot so povezave ( .git /refs), datoteke reflog in pack.

    S spremenljivko core.fsync lahko podate seznam notranjih struktur Git, za katere bo fsync dodatno poklican po operaciji pisanja. Spremenljivka core.fsyncMethod vam omogoča, da izberete metodo za izpiranje predpomnilnika, na primer lahko izberete fsync za uporabo istoimenskega sistemskega klica ali podate writeout-only za uporabo povratnega pisanja predpomnilnika strani.

  • Za zaščito pred ranljivostmi, ki manipulirajo z zamenjavo imenikov .git s strani drugih uporabnikov v razdelke v skupni rabi, je bilo okrepljeno preverjanje lastnika repozitorija. Izvajanje kakršnih koli ukazov git je zdaj dovoljeno le v njihovih imenikih ».git«. Če imenik z repozitorijem pripada drugemu uporabniku, bo privzeto prikazana napaka. To vedenje je mogoče onemogočiti z nastavitvijo safe.directory.
  • Ukaz »git cat-file«, namenjen izpisu izvorne vsebine objektov Git, je bil dopolnjen z možnostjo »--batch-command«, ki dopolnjuje prej razpoložljiva »--batch« in »--batch-check ” z možnostjo prilagodljive izbire vrste izhoda z uporabo “ contents <object>" za prikaz vsebine ali "info <object>" za prikaz informacij o objektu. Poleg tega je podprt ukaz "flush" za izpiranje izhodnega medpomnilnika.
  • Ukazu “git ls-tree”, namenjenemu generiranju seznama vsebin drevesa objektov, je dodana možnost “—oid-only” (“—samo objekt”), podobna možnosti “—samo ime” «, ki prikazuje samo identifikatorje objektov za poenostavitev klica iz skriptov. Izvedena je tudi možnost »--format«, ki vam omogoča, da določite lasten izhodni format s kombiniranjem informacij o načinu, vrsti, imenu in velikosti.
  • Ukaz »git bisect run« izvaja zaznavanje nenastavitve zastavice izvršljive datoteke za skript in v tem primeru prikazovanje napak s kodama 126 ali 127 (prej, če skripta ni bilo mogoče zagnati, so bile vse revizije označene kot težave) .
  • Ukazu "git fetch" je dodana možnost --refetch za pridobivanje vseh predmetov, ne da bi drugo stran obvestili o vsebini, ki je že v lokalnem sistemu. To vedenje je lahko koristno za okrevanje po napakah, ko je celovitost lokalnih podatkov negotova.
  • Ukazi "git update-index", "git checkout-index", "git read-tree" in "git clean" zdaj podpirajo delne indekse za izboljšanje zmogljivosti in prihranek prostora v repozitorijih, ki izvajajo operacije delnih indeksov. kloniranje (sparse-checkout ).
  • Vedenje ukaza “git clone —filter=… —recurse-submodules” je bilo spremenjeno, kar zdaj vodi do delnega kloniranja podmodulov (prej je bil pri izvajanju takih ukazov filter uporabljen samo za glavno vsebino, podmoduli pa so bili popolnoma kloniran brez upoštevanja filtra).
  • Ukaz "git bundle" je dodal podporo za določanje filtrov za selektivno umeščanje vsebine, podobno kot operacije delnega kloniranja.
  • Dodana možnost »--recurse-submodules« ukazu »git branch« za rekurzivno prečkanje podmodulov.
  • Userdiff ponuja nov upravljalnik za jezik Kotlin.

Vir: opennet.ru

Dodaj komentar