Az elosztott forrás vezérlőrendszer Git 2.24 kiadása

Elérhető az elosztott forrásvezérlő rendszer kiadása git 2.24.0. A Git az egyik legnépszerűbb, legmegbízhatóbb és nagy teljesítményű verziókezelő rendszer, amely rugalmas, elágazáson és összevonáson alapuló, nem lineáris fejlesztői eszközöket biztosít. Az előzmények sértetlenségének és a visszamenőleges változtatásokkal szembeni ellenállás biztosítására minden commit során a teljes korábbi előzmény implicit kivonatolása történik, valamint lehetőség van az egyes címkék és commitok hitelesítésére is a fejlesztők digitális aláírásával.

A 544 fejlesztő közreműködésével készült új verzióba az előző kiadáshoz képest 78 változtatást fogadtak el, ebből 21 először vett részt a fejlesztésben. A főbb innovációk:

  • Hozzáadott támogatás a konfigurációs makrókhoz, amelyeken keresztül gyorsan válthat a különböző beállításkészletek között anélkül, hogy részletezné a hozzájuk tartozó konkrét opciókat. A makrók segítségével nem kell emlékezni arra, hogy mely beállításokat kell módosítani egy adott funkció aktiválásához. Ha például egy nagy adattár lassú, érdemes lehet új indexelő motorra váltani, engedélyezni az elérési út előtagok tömörítését, és engedélyezni kell a nyomon nem követett fájl gyorsítótárat az index.version 4-re állításával és a core.untrackedCache engedélyezésével. A makrók lehetővé teszik, hogy ne pazarolja az időt a megfelelő megoldás keresésére a dokumentációban, hanem azonnal aktiválja a beállításokat a nagyszámú fájlt tartalmazó adattárak optimalizálásával:

    git config feature.manyFiles igaz

  • Alapértelmezés szerint engedélyezve van az objektumok véglegesítési gráf (commit-graph) formájú tárolása, amelyben nem az objektumok más objektumokra hivatkozó hash-einek lineáris listája, hanem egy gráf formájú struktúra használható az indexeléshez. . Ha korábban egy bizonyos javítást tartalmazó kiadások meghatározásához minden objektumot be kellett tölteni a lemezről a hivatkozások kereséséhez, akkor grafikon formájában tárolva azonnal meghatározhatja az összes szükséges hivatkozást. A Linux kernelben és a Git tárolókban commit gráf formájában történő tárolásra váltva közel kétszeresére nőtt az ágakkal végzett műveletek teljesítménye. Az új tárolási mód engedélyezéséhez a Git 2.24-re való frissítés után futtassa a „git gc” parancsot.

    A commit-graphhoz kapcsolódó változtatások közül azt is megjegyezzük, hogy a commit gráfhoz kapcsolódó parancsokban („git commit-graph write”, „git commit-graph verify” stb.) bevezették a műveleti folyamatjelzőt. más parancsokkal közös formára..). A folyamatjelző ezentúl alapértelmezés szerint csak a terminálon jelenik meg (a viselkedés megváltoztatásához használja a "-[no-]progress" opciót). Ezenkívül egy új fetch.writeCommitGraph konfigurációs paraméter is hozzáadásra került, amely lehetővé teszi a fájl automatikus frissítését a commit gráfgal a „git fetch” műveletek során (a külső tárolókból lekért véglegesítés azonnal a commit-gráfba kerül anélkül, hogy szükség lenne rá futtassa az auto-gc-t külön);

  • Parancs hozzáadva a változástörténet felülírásához - "git filter-repo", ami a parancs egyszerűbb alternatívája"git szűrő-ág» műveletek végrehajtása a lerakat változástörténetével (például egy fájl törlése a tárolóból vagy egy adott könyvtár változástörténetének lekérése). A hatékonyság javítása érdekében a rendezett commit-by-commit elemzés helyett a git filter-repo műveleteket hajt végre az előzményábrázoláson folyamatos adatfolyam formájában.

    Az előzmények szűrése a „-path-{glob,regex}” opcióval történik, amely lehetővé teszi egyszerű maszkok és reguláris kifejezések használatát. A megadott méretnél nagyobb bináris objektumok keresése és cseréje vagy tisztítása is lehetséges. Minden újraírt véglegesítéshez új SHA-1 hash azonosító tartozik, és a lecserélt véglegesítésre vonatkozó minden hivatkozás az új azonosítónak megfelelően frissül.

    Az adattárral kapcsolatos statisztikák összefoglalójának megjelenítéséhez (objektumok száma típus szerint, legnagyobb fájlok és könyvtárak, mely kiterjesztések igényelnek több lemezterületet stb.) az „-analyze” opciót biztosítjuk. A funkcionalitás bővítése érdekében lehetőség van tetszőleges visszahíváskezelők csatlakoztatására a Pythonban, amelyeken keresztül új alparancsokat hozhat létre és különféle eseményeket (például új fájltípusokat) dolgozhat fel;

  • Hozzáadott "--end-of-options" opció, amely elválasztja az opciókat a hivatkozásnevektől, amelyek "-" karakterrel kezdődhetnek, és opcióként kezelhetők ("git log --end-of-options -super-dangerous-option" ). Ha a mindennapi életben az ilyen nevek kikerülhetők, mint „git log 'refs/heads/—super-dangerous-option'”, akkor a szkripteknek gondjai lehetnek a névtér meghatározásával. Az általánosan elfogadott " - " elválasztójel ebben az esetben nem alkalmazható, mivel már használják a hivatkozásnevek elválasztására a fájloktól (például "git log —end-of-options —super-dangerous-option ^master — path/to /fájl”);
  • "--strategy" és "--strategy-option" opciók hozzáadva a "git rebase --rebase-merges" beállításhoz egyesülési stratégiák;
  • Hozzáadott egy új ".git/hooks/pre-merge-commit" kezelőt, amely az egyesítés befejezése után, de az eredményül kapott véglegesítés megírása előtt kerül meghívásra;
  • Az egyes parancsok beállításaival kapcsolatos konfigurációs változók kiegészítésének támogatása hozzáadásra került a parancskiegészítő motorhoz.
    Ha például be kell írnia a „git -c core.autocrlf=false add path/to/my/file”, de nem emlékszik a „core.autocrlf” változó pontos nevére, nyomja meg a Tab billentyűt, és kap egy célzás.

Ezenkívül a Git fejlesztői - tette hozzá projektben résztvevő magatartási kódexe, amely meghatározza a konfliktushelyzetek megoldásának alapelveit. A dokumentum az ajánlásokon alapul"Közreműködő Szövetség", számos nyílt forráskódú projektben használják, beleértve a Linux kernel, az Eclipse, a Freedesktop, a GitLab, a Ruby és a Kubernetes. A dokumentum minden résztvevő számára egyenlő esélyeket határoz meg világnézetüktől, életkorától, nemétől, vallási preferenciáitól, iskolai végzettségétől, társadalmi helyzetétől és nemzetiségétől függetlenül. A közösség üdvözli a baráti kommunikációs formát, a megértést, a többi résztvevő problémái iránti empátiát, az építő kritikák elfogadását és az egész közösség számára a legjobb döntések meghozatalát. Trollkodás, sértő kommunikáció, megaláztatási kísérlet, zaklatás, a magánélet megsértése, személyes adatok nyilvánosságra hozatala és egyéb, a szakmai kommunikációhoz nem megfelelőnek ítélt tevékenységek nem megengedettek.

Forrás: opennet.ru

Hozzászólás