Kibocsátva a Git 2.24 elosztott forráskezelő rendszerét;

Elérhető a forráskódok elosztott kezelésének rendszere Git 2.24.0. A Git az egyik legnépszerűbb, megbízható és nagy teljesítményű verziókezelő rendszer, amely rugalmas, nem lineáris fejlesztési eszközöket kínál, amelyek az elágazásokra és a branch-ök egyesítésére alapoznak. A történet integritásának és a 'visszamenőleges' módosításokkal szembeni ellenállásának biztosítása érdekében minden egyes commitban a teljes korábbi történet implicit hash-elése történik, továbbá a fejlesztők digitális aláírási hitelesítése is lehetséges egyes címkék és commitok számára.

A legutóbbi kiadáshoz képest az új verzióba 544 változtatás került be, amelyet 78 fejlesztő készített, közülük 21 először vett részt a fejlesztésben. Fő újdonságok:

  • Hozzáadva a konfigurációs makrók támogatása, amelyeken keresztül gyorsan váltogathat különböző beállítási halmazok között anélkül, hogy elmerülnénk a hozzátartozó konkrét lehetőségek részleteiben. A makrók segítségével nem szükséges megjegyezni, hogy pontosan mely beállításokat kell megváltoztatni egy adott funkció aktiválásához. Például, ha a nagy tárolóval való munkavégzés lassulása tapasztalható, szükség lehet egy új indexelési mechanizmusra, a fájlnevek előtagjainak tömörítésére és az nyomon nem követett fájlok gyorsítótárának aktiválására, a 'index.version' paraméter 4 értékre állításával és a 'core.untrackedCache' aktiválásával. A makrók lehetővé teszik, hogy ne pazaroljuk az időt a szükséges megoldás keresésére a dokumentációban, hanem azonnal aktiváljuk az optimalizálásokkal őrzött beállításokat, amelyeket nagy számú fájlú tárolókhoz terveztek:

    git config feature.manyFiles true

  • Alapértelmezés szerint engedélyezve van az objektumok commit-grafikus formában való tárolása (commit-graph), amelyhez nem lineáris lista használatos az objektumok hash-eivel és a többi objektumra mutató hivatkozásaikkal, hanem grafikus struktúra. Ha korábban a kiadások meghatározásához, amelyek egy adott javítást tartalmaznak, minden objektumot le kellett tölteni a lemezről a hivatkozások kereséséhez, akkor grafikus tárolás esetén az összes szükséges kapcsolat azonnal meghatározható. A commit-grafok tárolásra való áttérés a Linux és Git tárolókban közel kétszeres teljesítmény növekedést eredményezett az ágazatokkal végzett műveletek során. Az új tárolási módszer aktiválásához a Git 2.24-re való frissítés után a 'git gc' parancsot kell végrehajtani.

    A commit-graph kapcsolódó változásaival összefüggésben megjegyezhető, hogy a kapcsolódó commit-graph parancsok (például „git commit-graph write”, „git commit-graph verify” stb.) végrehajtásához a progreszsziv jelző megvalósítása mostantól egységesített módon történik más parancsokkal. A progreszsziv jelző mostantó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). Ezen kívül egy új konfigurációs paraméter is hozzá lett adva, a fetch.writeCommitGraph, ami lehetővé teszi a commit-graph fájl automatikus frissítését a „git fetch” parancsok során (minden külső repozitóriumból kiemelt commit közvetlenül bekerül a commit-graph-ba, anélkül hogy külön auto-gc parancsot kellene futtatni);

  • Új parancs került bevezetésre a módosítási történelem felülírására - „git filter-repo„, amely végtelenül egyszerűbb alternatívája a „git filter-branch” parancsnak, amellyel a repozitóriumok történetén végzett műveleteket lehet végezni (például fájl eltávolítása a repozitóriumból vagy egy adott mappa módosítási történetének kiemelése). A hatékonyság növelése érdekében a „git filter-repo” paranccsal végzett műveletek a történet folyamatos áramlásként való megjelenítésén végezhetők el, a sorba rendezett commitok vizsgálata helyett.

    A történet szűrése a „-path-{glob,regex}” opció segítségével történik, amely lehetővé teszi egyszerű maszkok és reguláris kifejezések alkalmazását is. Továbbá vannak opciók a „keresés és csere” eljárás végrehajtására, vagy a megadott méretet meghaladó bináris objektumok tisztítására. Minden átkonvertált commit új SHA-1 hash-azonosítóval van ellátva, és az új azonosító alapján frissülnek az összes hivatkozás a cserélt commitra.

    A repozitórium összefoglaló statisztikájának megjelenítésére (objektumok száma típusonként, legnagyobb fájlok és mappák, mely kiterjesztések igényelnek több helyet a lemezen stb.) van lehetőség az „-analyze” opció, amely lehetővé teszi a Python nyelvű egyedi callback-kezelők csatlakoztatását a funkcionalitás kibővítése érdekében, amelyeken keresztül új al-parancsokat készíthet, és különböző eseményeket dolgozhat fel (például új fájltípusokat);

  • Hozzáadva az „—end-of-options” opció, amely lehetővé teszi az opciók elválasztását a linknevektől, amelyek „-” karakterrel kezdődhetnek, és opciókként értelmeződnek („git log —end-of-options —super-dangerous-option”). Ha a gyakorlatban ilyen neveket „git log ‘refs/heads/—super-dangerous-option'” formában lehet escape-elni, akkor a szkriptekben problémák merülhetnek fel a névtér meghatározásával. A hagyományos „—” elválasztó ebben az esetben nem alkalmazható, mivel már a linknevek és fájlok elválasztására használják (például „git log —end-of-options —super-dangerous-option ^master — path/to/file”);
  • A „git rebase —rebase-merges” parancshoz hozzáadva az „—strategy” és „—strategy-option” opciók a választás lehetőségeivel osszefésülési stratégia;
  • Hozzáadva az új „.git/hooks/pre-merge-commit” feldolgozó, amely a merge végrehajtása után, de a végső commit rögzítése előtt hívódik meg;
  • A parancsok automatikus kiegészítési motorjához hozzáadva a konfigurációs változók kiegészítésének támogatása a konkrét parancsok beállításaihoz kötve.
    Például, ha be kell írni a „git -c core.autocrlf=false add path/to/my/file” parancsot, de nem emlékszik a „core.autocrlf” változó pontos nevére, megnyomhatja a Tabot, és megkaphatja a javaslatot.

Ezen kívül a Git fejlesztői csapathoz hozzáadtuk a projekt résztvevőinek viselkedési kódexét, amely meghatározza a konfliktusos helyzetek kezelésének alapelveit. A dokumentum a „Contributor Covenant” ajánlásain alapul, amelyet számos nyílt projektben alkalmaznak, beleértve a Linux kernelt, az Eclipse-t, a Freedesktop-ot, a GitLab-ot, a Ruby-t és a Kubernetes-t. A dokumentum egyenlő lehetőségeket definiál minden résztvevő számára, függetlenül a világnézetüktől, életkoruktól, nemüktől, vallási preferenciáiktól, iskolai végzettségüktől, társadalmi státuszukatól és nemzetiségüktől. A közösségben a barátságos kommunikációt, a megértést, a más résztvevők problémáival való együttérzést, a konstruktív kritikák elfogadását, valamint a közösség számára legjobb megoldások keresését támogatják. Tilos a trollkodás, a sértő kommunikáció, a lealacsonyító kísérletek, a zaklatás, a magánélet megsértése, a személyes adatok nyilvánosságra hozatala, valamint minden egyéb, a szakmai kommunikáció során nem megfelelőnek minősülő cselekedet.

Forrás: opennet.ru

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster