Izdanje kontrole izvora Git 2.36

Nakon tri mjeseca razvoja, objavljen je distribuirani sustav kontrole izvora Git 2.36. Git je jedan od najpopularnijih, pouzdanih i visokoučinkovitih sustava za kontrolu verzija, koji pruža fleksibilne nelinearne razvojne alate temeljene na grananju i spajanju. Kako bi se osigurala cjelovitost povijesti i otpornost na retroaktivne promjene, implicitno raspršivanje cijele prethodne povijesti koristi se u svakom commitu; također je moguće certificirati pojedinačne oznake i commitove digitalnim potpisima programera.

U odnosu na prethodno izdanje, u novoj verziji usvojeno je 717 izmjena, u pripremi je sudjelovalo 96 programera, od kojih je 26 po prvi put sudjelovalo u razvoju. Glavne inovacije:

  • Naredbe “git log” i “git show” sada imaju opciju “—remerge-diff” koja vam omogućuje da pokažete razlike između ukupnog rezultata spajanja i stvarnih podataka prikazanih u predaji nakon obrade naredbe “merge” , što vam omogućuje jasnu procjenu promjena koje su nastale kao rezultat rješavanja sukoba spajanja. Uobičajena naredba "git show" uvlači različita rješenja sukoba, čineći promjene teško razumljivima. Na primjer, na snimci zaslona ispod retka "+/-" bez uvlake prikazuje posljednje rješenje sukoba povezanog s preimenovanjem sha1 u oid u komentaru u prvoj grani, a "+/-" s uvlakom prikazuje početnu rješavanje sukoba uzrokovanog pojavom dodatnog argumenta u drugoj grani u funkciji dwim_ref().
    Izdanje kontrole izvora Git 2.36

    Kada koristite opciju "--remerge-diff", razlike između rješenja sukoba nisu odvojene za svaku nadređenu granu, ali se prikazuju ukupne razlike između datoteke koja ima sukobe spajanja i datoteke koja ima riješene sukobe.

    Izdanje kontrole izvora Git 2.36

  • Povećana fleksibilnost u konfiguriranju ponašanja za ispiranje predmemorije diska putem poziva funkcije fsync(). Prethodno dostupan parametar core.fsyncObjectFiles podijeljen je u dvije konfiguracijske varijable core.fsync i core.fsyncMethod, pružajući mogućnost primjene fsync-a ne samo na objektne datoteke (.git/objects), već i na druge git strukture kao što su veze ( .git /refs), datoteke reflog i pakiranja.

    Pomoću varijable core.fsync možete navesti popis internih Git struktura za koje će se fsync dodatno pozvati nakon operacije pisanja. Varijabla core.fsyncMethod omogućuje vam odabir metode za ispiranje predmemorije, na primjer, možete odabrati fsync za korištenje istoimenog sistemskog poziva ili navesti samo pisanje za korištenje povratnog pisanja u predmemoriju stranice.

  • Kako bi se zaštitili od ranjivosti koje manipuliraju drugim korisnicima zamjenom .git direktorija u dijeljene odjeljke, provjera vlasnika repozitorija je ojačana. Izvršavanje bilo koje git naredbe sada je dopušteno samo u njihovim ".git" direktorijima. Ako direktorij sa spremištem pripada drugom korisniku, tada će se prema zadanim postavkama prikazati pogreška. Ovo se ponašanje može onemogućiti pomoću postavke safe.directory.
  • Naredba “git cat-file”, namijenjena ispisivanju izvornog sadržaja Git objekata, dopunjena je opcijom “--batch-command” koja nadopunjuje prethodno dostupne “--batch” i “--batch-check ” naredbe s mogućnošću prilagodljivog odabira vrste izlaza pomoću “ contents <object>" za prikaz sadržaja ili "info <object>" za prikaz informacija o objektu. Dodatno, podržana je naredba "flush" za ispiranje izlaznog međuspremnika.
  • Naredbi “git ls-tree”, namijenjenoj generiranju popisa sadržaja stabla objekata, dodana je opcija “—oid-only” (“—samo objekt”), slična “—samo ime ”, prikazujući samo identifikatore objekata radi pojednostavljenja poziva iz skripti. Također je implementirana opcija “--format” koja vam omogućuje definiranje vlastitog izlaznog formata kombiniranjem informacija o načinu, vrsti, nazivu i veličini.
  • Naredba “git bisect run” implementira otkrivanje nepostavljanja oznake izvršne datoteke za skriptu i u ovom slučaju prikazuje pogreške s kodovima 126 ili 127 (ranije, ako se skripta nije mogla pokrenuti, sve su revizije bile označene kao da imaju problema) .
  • Dodana je opcija --refetch naredbi "git fetch" za dohvaćanje svih objekata bez obavještavanja druge strane o sadržaju koji se već nalazi na lokalnom sustavu. Ovo ponašanje može biti korisno za oporavak od kvarova kada je integritet lokalnih podataka neizvjestan.
  • Naredbe "git update-index", "git checkout-index", "git read-tree" i "git clean" sada podržavaju djelomične indekse (sparse index) za poboljšanje performansi i uštedu prostora u spremištima gdje se izvode djelomične operacije. kloniranje (sparse-blagajna).
  • Ponašanje naredbe “git clone —filter=… —recurse-submodules” je promijenjeno, što sada dovodi do djelomičnog kloniranja podmodula (ranije, prilikom izvršavanja takvih naredbi, filtar se primjenjivao samo na glavni sadržaj, a podmoduli su bili potpuno kloniran bez uzimanja u obzir filtera).
  • Naredba "git bundle" dodala je podršku za određivanje filtara za selektivno postavljanje sadržaja, slično operacijama djelomičnog kloniranja.
  • Dodana je opcija "--recurse-submodules" naredbi "git branch" za rekurzivni pregled podmodula.
  • Userdiff nudi novi rukovatelj za jezik Kotlin.

Izvor: opennet.ru

Dodajte komentar