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

Elérhető az elosztott forrásvezérlő rendszer kiadása git 2.25.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 583 fejlesztő közreműködésével készült új verzióba az előző kiadáshoz képest 84 változtatást fogadtak el, ebből 32 először vett részt a fejlesztésben. A főbb innovációk:

  • A részleges klónozás lehetősége közeledik a stabilizáláshoz és a teljes készenléthez, lehetővé téve az adatok csak egy részének átvitelét, és a tár hiányos másolatával való munkát. Egy tipikus klón minden adatot másol a lerakatból, beleértve a változástörténetben szereplő összes fájl minden verzióját. Nagyon nagy adattárak esetén az adatok másolása a forgalom és a lemezterület jelentős növekedését eredményezi, még akkor is, ha a fejlesztőt csak a fájlok egy részhalmaza érdekli. A működő forrásfa csak egy részének lekérésének megkönnyítése érdekében az új kiadás egy kísérleti "sparse-checkout" parancsot és egy új "--sparse" opciót vezet be a "clone" parancshoz.

    Korábban a szelektív klónozást a feladaton keresztül hajtották végre szűrők a szükségtelen tartalom kiszűréséhez és a „-no-checkout” opcióval a hiányzó fájlok kitöltésének letiltásához. Ezt követően a fizetési művelet végrehajtása előtt engedélyezni kellett a core.sparseCheckout beállítást, és meg kellett határozni a kizárt útvonalminták listáját a .git/info/sparse-checkout fájlban. Például a blobok nélküli klónozáshoz és a fájlok 2-es vagy annál mélyebb alkönyvtárakból való kibontásának megakadályozásához futtassa a következőket:

    git klón --filter=blob:none --no-checkout /your/repository/here repo
    $cd repo
    $ cat >.git/info/sparse-checkout
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git pénztár .

    Az új „git sparse-checkout” parancs nagymértékben leegyszerűsíti a munkát, és lecsökkenti a hiányos adattárral járó munka megszervezésének folyamatát a következő parancsokra:

    git klón --filter=blob:none --sparse /your/repository/here repo
    git sparse-checkout set /path/to/check/out

    A sparse-checkout parancs lehetővé teszi a fizetési útvonalak listájának beállítását (set) a .git/info/sparse-checkout manuális konfigurálása nélkül, valamint az elérési utak aktuális listájának (lista) megjelenítését, valamint a részleges fizetések engedélyezését vagy letiltását (enable /letilt).

    A nagyon nagy tárolókkal és sablonlistákkal végzett munka optimalizálása érdekében a „git config core.sparseCheckoutCone", ami korlátozza a megengedett mintákat (a tetszőleges .gitignore minták helyett megadhatja, hogy egy adott alkönyvtárban lévő összes elérési út és fájl ki legyen-e zárva). Például, ha egy nagy tárolónak van egy „A/B/C” könyvtára, és az összes munka a „C” alkönyvtárban összpontosul, akkor a sparseCheckoutCone mód bekapcsolásakor a „git sparse-checkout set A/B/” parancsot kapja. C” a „C” teljes tartalmát kivonja, de „A” és „B” közül csak a „C” használatához szükséges részeket.

  • A dokumentációból ("git rebase -h") eltávolítottuk a "--preserve-merges" opcióra való hivatkozást, amely elavult, és helyette a véglegesítések áttelepítéséhez kell használni.git rebase --rebase-merges”.
  • A levelezőlistákra küldött javításokkal ellátott üzenetek olvashatóságának javítása érdekében hozzáadásra került a „git format-patch —cover-from-description subject” opció, ha megadjuk, az ág leírásának szövegének első bekezdése lesz a tárgya. kísérőlevél foltkészlethez.
  • Megvalósított támogatás a „git apply -3way” parancs és a „merge.conflictStyle” beállítás együttes használatához (a „git apply” most már figyelembe veszi a merge.conflictStyle konfliktusleíró stílusát, amikor meg kell oldani az ütközést a próbálkozás után javítófájl alkalmazásához a tárhelyre).
  • Az olyan műveletekben használt függvénydefiníciós kódot, mint például a "git diff/grep --show-function/-function-context", kibővítették, hogy támogassa a függvényhatárok meghatározását a nyelvi programokban Elixír.
  • A "git add", "git commit", "git reset" és más parancsok új opcióval bővültek - "-pathspec-from-file", amely lehetővé teszi az elérési utak listájának betöltését fájlból vagy bemeneti adatfolyamból , ahelyett, hogy a parancssorban felsorolná őket.
  • Megoldódott a könyvtárszintű átnevezések észlelésével kapcsolatos probléma a véglegesítés írása során. A definíció nem működött, ha egy alkönyvtár tartalma átkerült a lerakat gyökerébe.
  • Javasolták az újratervezett „git add -i” parancs kezdeti megvalósítását, amely lehetővé teszi a megváltozott tartalom interaktív hozzáadását, Perlről C-re átírva. A „git add -p” parancs hasonló átdolgozása folyamatban van.
  • A „git log –graph” parancsot újrafaktorálták, ASCII-képet generálva egy gráfról, amely tartalmazza a lerakat változásainak történetét. Az átdolgozás lehetővé tette a kimenet jelentős javítását és egyszerűsítését anélkül, hogy a történet szerkezete torzult volna, ami például megoldotta a terminális vonalszélességen túlnyúló kép problémáját.
  • A "git log --format=.." opció lehetővé teszi a kimeneti formátum megváltoztatását,
    kiterjesztve az „l/L” jelzők támogatásával, hogy az e-mail címnek csak a „@” szimbólum előtti részét jelenítse meg (például akkor hasznos, ha minden fejlesztő minden e-mailje ugyanabban a domainben van).

  • Hozzáadott egy „set-url” alparancsot a „git submodule” parancshoz.
  • A tesztkészleteket frissítettük az átállás előkészítéseként
    SHA-2 kivonatoló algoritmus az SHA-1 helyett.

Forrás: opennet.ru

Hozzászólás