Release of Git 2.36 source code management system

Három hónapos fejlesztés után megjelent a Git 2.36 verziója, amely egy elosztott forráskód-kezelő rendszer. A Git az egyik legnépszerűbb, megbízható és nagy teljesítményű verziókezelő rendszer, amely rugalmas eszközöket biztosít nem lineáris fejlesztéshez, amelyek az ágon való elágazásra és az ágak összevonására épülnek. A történet integritásának és a visszamenőleges változtatásokkal szembeni védelem biztosítása érdekében implicit hash-eljük az összes korábbi történetet minden egyes commitban, emellett lehetséges a fejlesztők digitális aláírásaival történő azonosítás a különböző címkék és commitok esetében.

A legutóbbi kiadáshoz képest az új verzió 717 változást tartalmaz, amelyeket 96 fejlesztő készített, közülük 26-an most először vettek részt a fejlesztésben. Főbb újdonságok:

  • A 'git log' és 'git show' parancsokhoz hozzáadták a '--remerge-diff' opciót, amely lehetővé teszi a különbségek megjelenítését az összevonás közös eredménye és a commitban ténylegesen tükröződő adatok között, miután a 'merge' parancsot feldolgozták. Ez lehetővé teszi a heurisztikai értékelését azoknak a változásoknak, amelyeket az összevonási konfliktusok megoldásának eredményeként hajtottak végre. A szokásos 'git show' parancs a különböző konfliktusok megoldásait behúzással választja el, ami megnehezíti a változások megértését. Például az alábbi képernyőfelvételen a '-/+' behúzás nélküli sor az utolsó konfliktusmegoldást mutatja, amely az első ágon a sha1 átnevezésével kapcsolatos, míg a '-/+' behúzással az alapértelmezett konfliktusmegoldást mutatja, amely a második ágon megjelenő kiegészítő argumentum miatt volt szükséges a dwim_ref() függvényben.
    Release of Git 2.36 source code management system

    A '--remerge-diff' opció használatakor a konfliktusok megoldásai nincsenek különválasztva minden egyes szülőág számára, hanem a fájl, amely összevonási konfliktusokat tartalmaz, és a fájl, amelyben a konfliktusokat megoldották, közötti általános különbségeket mutatják.

    Release of Git 2.36 source code management system
  • Növeltük a lemezképek visszaállítási viselkedésének testreszabásának rugalmasságát az fsync() függvény hívásán keresztül. Az eddig elérhető core.fsyncObjectFiles paramétert két konfigurációs változóra osztottuk: core.fsync és core.fsyncMethod, amelyek lehetővé teszik az fsync alkalmazását nemcsak az objektumfájlokra (.git/objects), hanem más git struktúrákra is, mint például linkek (.git/refs), reflog és pack fájlok.

    A core.fsync változó segítségével megadható a Git belső struktúráinak listája, amelyeket írási művelet után további fsync hívás fog érinteni. A core.fsyncMethod változó lehetővé teszi a gyorsítótár kiürítésének módjának kiválasztását, például választható az fsync a hasonló nevű rendszerhívás alkalmazásához, vagy megadható a writeout-only az elhalasztott írás (pagecache writeback) alkalmazásához.

  • A más felhasználók által a .git könyvtárak manipulálására vonatkozó sebezhetőségek elleni védelem érdekében megerősítették a tároló tulajdonosának ellenőrzését. Mostantól a git parancsok végrehajtása csak a saját „.git” könyvtárakban engedélyezett. Ha a tároló könyvtár egy másik felhasználó tulajdonában van, akkor alapértelmezés szerint hibaüzenet jelenik meg. Ez a viselkedés a safe.directory beállítás segítségével kikapcsolható.
  • A „git cat-file” parancshoz, amely a Git objektumok nyers tartalmát adja vissza, hozzáadták a „—batch-command” opciót, amely kiegészíti a korábban elérhető „—batch” és „—batch-check” parancsokat a kimeneti típus adaptív kiválasztásának lehetőségével a „contents ” megadásával a tartalom vagy az „info ” megadásával az objektum információjának megjelenítésére. Ezenkívül támogatott a „flush” parancs is a kimeneti pufferek kiürítésére.
  • A „git ls-tree” parancshoz, amely az objektumfa tartalmának listáját hozza létre, hozzáadták a „—oid-only” („—object-only”) opciót, amely hasonló a „—name-only” parancshoz, és csak az objektumok azonosítóit adja vissza, megkönnyítve ezzel a hívásokat szkriptekből. Emellett megvalósították a „—format” opciót, amely lehetővé teszi a saját kimeneti formátum meghatározását, kombinálva az üzemmódról, típusról, névről és méretről szóló információt.
  • A „git bisect run” parancsban megvalósították, hogy a script számára ne jelölje az állományt futtatható fájlként, és ha ez megtörténik, akkor hibaüzeneteket adjon vissza 126-os vagy 127-es kódokkal (korábban, ha a script nem volt végrehajtható, akkor az összes revízió problémásként volt megjelölve).
  • A „git fetch” parancshoz hozzáadták a „—refetch” opciót, amely az összes objektumot úgy vonja ki, hogy nem tájékoztatja a másik felet a már a helyi rendszerben lévő tartalomról. Ez a viselkedés hasznos lehet a hibák utáni állapot helyreállításához, amikor nem biztosak a helyi adatok integritásában.
  • A "git update-index", "git checkout-index", "git read-tree" és "git clean" parancsokhoz hozzáadták a részleges indexek (sparse index) támogatását, amely javítja a teljesítményt és helyet takarít meg azokban a tárolókban, ahol részleges klónozási (sparse-checkout) műveletek zajlanak.
  • Megváltozott a "git clone —filter=… —recurse-submodules" parancs működése, amely most már a szubmodulok részleges klónozásához vezet (korábban ezeknél a parancsoknál a szűrő csak a fő tartalomra vonatkozott, a szubmodulokat pedig teljesen klónozták a szűrő figyelembevételével).
  • A "git bundle" parancshoz hozzáadták a szűrők megadásának támogatását a tartalom szelektív elhelyezésére, analóg módon a részleges klónozási műveletekkel.
  • A "git branch" parancshoz hozzáadták a "—recurse-submodules" opciót a szubmodulok rekurzív átvizsgálásához.
  • A userdiff-hez egy új kezelőt javasoltak a Kotlin nyelvhez.

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