Git 2.38-os forrásvezérlő kiadás

Bejelentették a Git 2.38 elosztott forrásvezérlő rendszer kiadását. 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.

Az új verzió az előző kiadáshoz képest 699 változtatást tartalmazott, 92 fejlesztő részvételével készült, ebből 24 először vett részt a fejlesztésben. Főbb újítások:

  • A fő struktúra tartalmazza a „skalár” segédprogramot, amelyet a Microsoft fejlesztett ki nagy adattárak kezelésére. A segédprogram eredetileg C# nyelven íródott, de a git tartalmaz egy módosított változatot is C nyelven. Az új segédprogram abban különbözik a git parancstól, hogy alapértelmezés szerint további szolgáltatásokat és beállításokat engedélyez, amelyek befolyásolják a teljesítményt, ha nagyon nagy tárolókkal dolgozik. Például skalár használatakor ez vonatkozik:
    • Részleges klónozás a tár hiányos másolatával való működéshez.
    • Beépített mechanizmus a fájlrendszer változásainak nyomon követésére (FSMonitor), amely lehetővé teszi a teljes munkakönyvtár keresése nélkül.
    • Különböző csomagfájlokban lévő objektumokat lefedő indexek (több csomag).
    • commit-graph fájlok véglegesítési gráfindexszel, amelyet a véglegesítési információk elérésének optimalizálására használnak.
    • Rendszeres háttérmunka a tároló optimális szerkezetének fenntartása érdekében a háttérben, az interaktív munkamenet blokkolása nélkül (óránként egyszer történik a friss objektumok proaktív letöltése a távoli tárolóból és a fájl frissítése a véglegesítési gráfgal, valamint a csomagolás folyamata a tároló minden este elindul).
    • "sparseCheckoutCone" mód, amely korlátozza a megengedett mintákat a részleges klónozás során.
  • Hozzáadott egy --update-refs paramétert a "git rebase" parancshoz, hogy frissítse az áthelyezett ágakkal átfedésben lévő függő ágakat, ahelyett, hogy minden függő ágat manuálisan ellenőrizni kellene a szükséges véglegesítésre váltáshoz.
  • A "git rm" parancsot kompatibilissé tette a részleges indexekkel.
  • Javítottuk a „git mv AB” parancs viselkedését, amikor egy fájlt „kúp” módban részleges indexekkel rendelkező munkaterületről olyan külső hatókörre helyezünk át, amely nem rendelkezik ezzel a móddal.
  • A bittérképes fájlformátumot a nagy tárolókkal való munkavégzéshez optimalizálták – egy opcionális indextáblázat került hozzáadásra a kiválasztott véglegesítések listájával és azok eltolásaival.
  • A „git merge-tree” parancs egy új módot valósít meg, amelyben két meghatározott véglegesítés alapján egy fát számítanak ki az egyesítés eredményével, mintha ezeknek a véglegesítéseknek a történetét egyesítenék.
  • A „safe.barerepository” beállítás hozzáadva a csupasz adattárak (amelyek nem tartalmaznak működő fát) más git-lerakatokon belüli hosztolásának képességét szabályozza. Ha „explicit”-re van állítva, akkor csak a legfelső könyvtárban található csupasz tárolókkal lehet dolgozni. Ahhoz, hogy csupasz adattárakat el tudjon helyezni az alkönyvtárakba, használja az „all” értéket.
  • A „git grep” parancs hozzáadta a „-m” („-max-count”) opciót, amely hasonló a GNU grep azonos nevű opciójához, és lehetővé teszi a megjelenített egyezések számának korlátozását.
  • Az „ls-files” parancs megvalósítja a „--format” opciót a kimeneti mezők konfigurálásához (például engedélyezheti az objektumnév, módok stb. kimenetét).
  • A „git cat-file”-ben az objektumok tartalmának megjelenítésekor lehetőség van a mailmap fájlban megadott szerző-e-mail összerendelések figyelembevételére.

Forrás: opennet.ru

Hozzászólás