Izdanje kontrole izvora Git 2.38

Najavljeno je izdanje distribuiranog sustava za kontrolu izvora Git 2.38. 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 usporedbi s prethodnim izdanjem, nova verzija uključuje 699 promjena pripremljenih uz sudjelovanje 92 programera, od kojih je 24 po prvi put sudjelovalo u razvoju. Glavne inovacije:

  • Glavna struktura uključuje uslužni program "skalar", koji je razvio Microsoft za upravljanje velikim spremištima. Uslužni program je izvorno napisan u C#, ali git uključuje modificiranu verziju u C. Novi uslužni program razlikuje se od naredbe git po tome što prema zadanim postavkama omogućuje dodatne značajke i postavke koje utječu na performanse pri radu s vrlo velikim spremištima. Na primjer, kada se koristi skalar, primjenjuje se:
    • Djelomično kloniranje za rad s nepotpunom kopijom repozitorija.
    • Ugrađeni mehanizam za praćenje promjena u datotečnom sustavu (FSMonitor), koji vam omogućuje da ne pretražujete cijeli radni direktorij.
    • Indeksi koji pokrivaju objekte u različitim paketnim datotekama (multi-pack).
    • commit-graph datoteke s indeksom commit graph-a koji se koristi za optimizaciju pristupa informacijama o predaji.
    • Pozadinski periodični rad za održavanje optimalne strukture repozitorija u pozadini, bez blokiranja interaktivne sesije (radi se jednom na sat za proaktivno preuzimanje svježih objekata iz udaljenog repozitorija i ažuriranje datoteke s grafom predaje i proces pakiranja repozitorij se pokreće svake noći).
    • "sparseCheckoutCone" način, koji ograničava dopuštene uzorke tijekom djelomičnog kloniranja.
  • Dodana je opcija --update-refs naredbi "git rebase" za ažuriranje zavisnih grana koje se preklapaju s granama koje se premještaju, umjesto da morate ručno provjeriti svaku zavisnu granu da biste se prebacili na potrebnu predaju.
  • Naredba "git rm" postala je kompatibilna s djelomičnim indeksima.
  • Poboljšano je ponašanje naredbe "git mv A B" prilikom premještanja datoteke iz radnog prostora s djelomičnim indeksima u načinu "konus" u vanjsku regiju koja nema ovaj način.
  • Format bitmap datoteke optimiziran je za rad s velikim spremištima - dodana je opcijska indeksna tablica s popisom odabranih obveza i njihovih pomaka.
  • Naredba “git merge-tree” implementira novi način rada u kojem se, na temelju dva navedena urezivanja, izračunava stablo s rezultatom spajanja, kao da su povijesti tih urezivanja spojene.
  • Dodana postavka "safe.barerepository" za kontrolu mogućnosti ugošćavanja golih repozitorija (spremišta koja ne sadrže radno stablo) unutar drugih git repozitorija. Kada se postavi na "eksplicitno", bit će moguće raditi s golim repozitorijima koji se nalaze samo u gornjem direktoriju. Da biste mogli smjestiti gola spremišta u poddirektorije, koristite vrijednost "all".
  • Naredba “git grep” dodala je opciju “-m” (“—max-count”), koja je slična opciji istog naziva u GNU grep i omogućuje vam da ograničite broj prikazanih podudaranja.
  • Naredba “ls-files” implementira opciju “--format” za konfiguriranje izlaznih polja (na primjer, možete omogućiti izlaz naziva objekta, načina rada itd.).
  • U “git cat-datoteci”, prilikom prikaza sadržaja objekata, moguće je uzeti u obzir veze autora i e-pošte navedene u datoteci mape pošte.

Izvor: opennet.ru

Dodajte komentar