A Git 2.25 elosztott forráskezelő rendszer kiadása

Elérhető a forráskódok elosztott kezelésének rendszere Git 2.25.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 583 változtatást fogadtak el, amelyet 84 fejlesztő készített, közülük 32-en vettek részt először a fejlesztésben. Fő újdonságok:

  • Közelít a stabilizáláshoz és a teljes készenléthez a részleges klónozás lehetősége, amely lehetővé teszi, hogy csak egy részét másoljuk át az adatoknak, és egy hiányos másolattal dolgozzunk. Szokásos klónozáskor a repozitóriumból minden adat átmásolódik, beleértve az egyes fájlok minden változatát a módosítási történetből. Nagyon nagy repozitóriumok esetén az adatok másolása jelentősen növeli a forgalmat és a lemezterületet, még akkor is, ha a fejlesztőt csak a fájlok egy részhalmaza érdekli. A forráskódok munkafájának részleges megtekintésének egyszerűsítése érdekében az új verzióban egy kísérleti parancsot, a „sparse-checkout”-ot és egy új „—sparse” opciót javasolnak a „clone” parancshoz.

    Korábban a részleges klónozás folyamata az alábbiak szerint zajlott: szűrők a felesleges tartalom kiszűrésére és a „—no-checkout” opció az eltávolítandó fájlok kiegészítésének letiltására. Ezt követően a checkout művelet végrehajtása előtt be kellett állítani a core.sparseCheckout beállítást, és a .git/info/sparse-checkout fájlban fel kellett tüntetni az eltávolítandó útvonalak mintáit. Például, a blobok nélküli klónozás és a fájlok kiemelésének tiltása a 2-es vagy annál nagyobb mélységű almappákból így valósítható meg:

    git clone —filter=blob:none —no-checkout /your/repository/here repo
    $ cd repo
    $ cat >.git/info/sparse-checkout <EOF
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git checkout .

    Az új „git sparse-checkout” parancs jelentősen egyszerűsíti a munkát és a hiányos repozitóriummal való munkát az alábbi parancsokkal összesíti:

    git clone —filter=blob:none —sparse /your/repository/here repo
    git sparse-checkout set /path/to/check/out

    A sparse-checkout parancs lehetővé teszi az útvonalak listájának beállítását a checkout számára (set) anélkül, hogy manuálisan kellene beállítani a .git/info/sparse-checkout-t, valamint a jelenlegi útvonalak listájának megjelenítését (list) és a részleges checkout-ok engedélyezését vagy letiltását (enable/disable).

    Nagyon nagy repozitóriumok és minta listák kezelésének optimalizálása érdekében a „git config core.sparseCheckoutConeA megengedett sablonokat korlátozó opció (az önkényes .gitignore sablonok helyett megadható, hogy minden elérési utat és fájlt ki kell-e nyerni a megadott alkönyvtárban). Például, ha egy nagy repóban van egy "A/B/C" könyvtár, és minden munka a "C" alkönyvtárra összpontosul, akkor a sparseCheckoutCone mód bekapcsolásával a "git sparse-checkout set A/B/C" parancs teljes mértékben kijelzi a "C" tartalmát, de "A"-ból és "B"-ből csupán a "C"-vel való munkához szükséges elemeket.

  • A dokumentációból („git rebase -h”) eltávolították az „—preserve-merges” opcióra vonatkozó összes említést, amely elavultnak van nyilvánítva, és helyette a commitok áthelyezéséhez az „git rebase —rebase-merges«.
  • A patch-üzenetek olvashatóságának javítása érdekében, amelyeket a levelezőlistákra küldenek, hozzáadták az „git format-patch —cover-from-description subject” opciót, amelynél a patchcsoport kísérőlevelének témájaként a szakasz első bekezdése kerül felhasználásra.
  • Megvalósították az „git apply —3way” parancs és a „merge.conflictStyle” beállítás együttes alkalmazásának támogatását (az „git apply” mostantól figyelembe veszi a merge.conflictStyle konfliktusleírási stílusát, ha a patch fájl alkalmazása utáni konfliktus feloldása szükséges).
  • A funkciók meghatározására vonatkozó kód, amelyet olyan műveletekben használnak, mint a „git diff/grep —show-function/—function-context”, kiterjesztésre került a funkcióhatárok meghatározásának támogatásával a programozási nyelvek esetén. Elixir.
  • Az „git add”, „git commit”, „git reset” és egyéb parancsokhoz hozzáadták az új „—pathspec-from-file” opciót, amely lehetőséget biztosít fájlból vagy bemeneti áramlásból elérési utak listájának betöltésére a parancssorbeli felsorolás helyett.
  • Megoldották a könyvtárszintű átnevezések meghatározásának problémáját a commitok rögzítésekor. A meghatározás nem működött, ha az alkönyvtár tartalmát a repó gyökerébe mozgatták.
  • Elkészült a felújított „git add -i” parancs kezdeti megvalósítása, amely lehetővé teszi a módosított tartalom interaktív módon való hozzáadását, Perl-ről C-re átírt változat. Ezen kívül hasonló újraírás alatt áll a „git add -p” parancs is.
  • A „git log —graph” parancs refaktorálásra került, amely ASCII ábrát hoz létre a repó változásait történetéről. Az újraírás jelentősen javította és egyszerűsítette a kimenetet anélkül, hogy torzítaná a történet struktúráját, amely például megoldotta a grafikon kilépésének problémáját a terminál sorainak szélességéből.
  • A «git log —format=..» opció, amely lehetővé teszi a kimenet formátumának megváltoztatását,
    kibővült az «l/L» zászlók támogatásával, amelyek lehetővé teszik, hogy csak az email cím azon részét jelenítsük meg, amely a «@» jel előtt található (például hasznos, amikor minden fejlesztő email címe ugyanabban a tartományban van).
  • A «git submodule» parancshoz hozzáadva a «set-url» alsóparancs.
  • A tesztcsomagok frissítve lettek az átállás előkészítéseként
    az SHA-2 hash algoritmusra a SHA-1 helyett.

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