Izid sistema za upravljanje izvorne kode Git 2.36

Po treh mesecih razvoja je bil objavljen izvod distribuiranega sistema za upravljanje izvorno kodo Git 2.36. Git je eden najbolj priljubljenih, zanesljivih in visoko zmogljivih sistemov za upravljanje različic, ki ponuja prilagodljive možnosti nelinearnega razvoja, ki temeljijo na razvejanju in združevanju vej. Za zagotavljanje celovitosti zgodovine in odpornosti proti spremembam "za nazaj" se uporablja implicitno hashsko zapisovanje celotne prejšnje zgodovine v vsakem commitu, prav tako je mogoče potrditi z digitalnimi podpisi razvijalcev posamezne oznake in commite.

V primerjavi z prejšnjim izvodom je nova različica sprejela 717 sprememb, ki so jih pripravili 96 razvijalci, od katerih je 26 prvič sodelovalo pri razvoju. Glavne novosti:

  • V ukaze 'git log' in 'git show' je bila dodana možnost '--remerge-diff', ki omogoča prikaz razlik med skupnim rezultatom združevanja in dejanskimi podatki, prikazanimi v commitu po obdelavi ukaza 'merge', kar omogoča vizualno oceno sprememb, izvedenih pri reševanju konfliktov med združevanjem. Običajni ukaz 'git show' ločuje različne rešitve konfliktov s presledkom, kar otežuje razumevanje sprememb. Na primer, na spodnjem posnetku zaslona vrstici '+/-' brez presledka prikazujeta zadnjo rešitev konflikta, povezano s preimenovanjem v prvi veji sha1 na oid v pripombah, medtem ko '+/-' s presledkom prikazuje začetno rešitev konflikta, ki je povzročena zaradi pojava dodatnega argumenta v funkciji dwim_ref() v drugi veji.
    Izid sistema za upravljanje izvorne kode Git 2.36

    Pri uporabi možnosti '--remerge-diff' se razlike med rešitvami konfliktov ne ločijo za vsako starševsko vejo, temveč se prikažejo skupne razlike med datoteko, ki ima konflikte združevanja, in datoteko, v kateri so konflikti rešeni.

    Izid sistema za upravljanje izvorne kode Git 2.36
  • Povečana je fleksibilnost pri nastavitev obnašanja za ponastavitev diskovnih predpomnilnikov prek klica funkcije fsync(). Prej razpoložljiva spremenljivka core.fsyncObjectFiles je bila razdeljena na dve konfiguracijski spremenljivki core.fsync in core.fsyncMethod, ki omogočata uporabo fsync ne le na datotekah z objekti (.git/objects), temveč tudi na drugih git strukturah, kot so sklici (.git/refs), reflog in pack datoteke.

    Preko varijable core.fsync možete odrediti popis unutarnjih struktura Gita za koje će se, nakon operacije pisanja, dodatno pozvati fsync. Varijabla core.fsyncMethod omogućava odabir metode za ispražnjenje cache-a, na primjer, možete odabrati fsync za primjenu istog sistemskog poziva ili odrediti writeout-only za primjenu odgođenog pisanja (pagecache writeback).

  • Kako bi se zaštitili od ranjivosti koje manipuliraju zamjenama drugih korisnika u direktorijima .git na zajedničkim dijelovima, pojačana je provjera vlasnika repozitorija. Izvršavanje bilo kojih git komandi sada je dozvoljeno samo u svojim '.git' direktorijima. Ako direktorij s repozitorijem pripada drugom korisniku, prema zadanim postavkama bit će prikazana greška. Ova funkcionalnost može se isključiti pomoću postavke safe.directory.
  • U komandu 'git cat-file', namijenjenu za ispis izvornog sadržaja Git objekata, dodana je opcija '--batch-command', koja nadopunjuje prethodno dostupne komande '--batch' i '--batch-check' mogućnošću adaptivnog odabira tipa ispisa putem specificiranja 'contents ' za ispis sadržaja ili 'info ' za ispis informacija o objektu. Dodatno je podržana komanda 'flush' za ispražnjivanje izlaznog bafera.
  • U komandu 'git ls-tree', namijenjenu za formiranje popisa sadržaja stabla objekata, dodana je opcija '--oid-only' ('--object-only'), koja, analogno '--name-only', ispisuje samo identifikatore objekata radi pojednostavljenja poziva iz skripti. Također je implementirana opcija '--format' koja omogućava definiranje vlastitog formata ispisa, kombinirajući informacije o načinu, tipu, imenu i veličini.
  • U komandi 'git bisect run' implementirano je određivanje neizvršenja za skriptu oznakom izvršnog datoteke i ispisivanje u tom slučaju grešaka s kodovima 126 ili 127 (ranije, ako skriptu nije bilo moguće pokrenuti, sve revizije su označene kao problematične).
  • U komandu 'git fetch' dodana je opcija '--refetch' za preuzimanje svih objekata bez obavještavanja druge strane o sadržaju koji već postoji na lokalnom sustavu. Ovakvo ponašanje može biti korisno za obnavljanje stanja nakon pogrešaka, kada nije sigurna cjelovitost lokalnih podataka.
  • V ekipah «git update-index», «git checkout-index», «git read-tree» in «git clean» je bila dodana podpora za delne indekse (sparse index), ki omogočajo izboljšanje zmogljivosti in prihranek prostora v repozitorijih, kjer se izvajajo operacije delnega kloniranja (sparse-checkout).
  • Spremenjeno je obnašanje ukaza «git clone —filter=… —recurse-submodules», ki zdaj vodi do delnega kloniranja podmodulov (prej je filter veljal le za glavno vsebino, podmoduli pa so se klonirali v celoti ne glede na filter).
  • Ukazu «git bundle» je dodana podpora za določanje filtrov za selektivno vključevanje vsebine v skladu z operacijami delnega kloniranja.
  • Ukazu «git branch» je dodana možnost «—recurse-submodules» za rekurzivno obnavljanje podmodulov.
  • V userdiff je predlagan nov obdelovalnik za jezik Kotlin.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster