Megjelent a Git 2.31 elosztott forráskód-kezelő rendszer

Megjelent a Git 2.31 verziója, amely egy elosztott forráskód-kezelő rendszer. A Git az egyik legnépszerűbb, megbízható és magas teljesítményű verziókezelő rendszer, amely rugalmas eszközöket kínál a nem lineáris fejlesztéshez, alapvetően az ágak elágazása és egyesítése alapján. A történet integritásának és a korábbi változásokkal szembeni ellenállásának biztosítása érdekében a korábbi történet implicit hashelése minden egyes elköteleződésnél történik, emellett a fejlesztők digitális aláírásaival is lehetőség van egyes címkék és elköteleződések hitelesítésére.

A múltbeli verzióhoz képest 679 módosítás került a legújabb kiadásba, melyeket 85 fejlesztő készített, közülük 23 most először vett részt a fejlesztésben. Főbb újdonságok:

  • Megjelent a "git maintenance" parancs, amely lehetővé teszi periodikus feladatok végrehajtását olyan rendszereken, amelyek nem támogatják a cront. Például ezzel az új parancssal időszakos csomagolási folyamatot indíthatunk a tárolóban, anélkül, hogy meg kellene várnunk a tároló blokkolását az automatikus csomagolás során, amikor különböző parancsokat futtatunk. A "git maintenance" parancs segítségével a repository optimizálása és fenntartása háttérben hajtható végre, nem blokkolva az interaktív munkamenetet — óránként friss objektumokat tölt be a távoli repositoryból és frissíti az elköteleződések gráfját, míg minden este elindítja a repository csomagoló folyamatát.
  • Támogatás került a fordított index (revindex) fenntartásához a pack-fájlok számára. Emlékeztetőül, a Git az összes adatot objektumok formájában tárolja, amelyeket külön fájlokban helyeznek el. A repositoryval való munka hatékonyságának növelése érdekében az objektumokat további pack-fájlokba helyezik, amelyekben az információ folyamatos objektumáramként van ábrázolva (hasonló formátumot alkalmaznak a git fetch és git push parancsok során az objektumok átvitelekor). Minden pack-fájlhoz indexfájl (.idx) készül, amely lehetővé teszi, hogy nagyon gyorsan azonosítsuk az objektum azonosítóját a pack-fájlban található eltolás alapján. A Git 2.31-ben javasolt fordított index (.rev) a pack-fájlban található objektum elhelyezésével kapcsolatos információk alapján az objektum azonosítójának meghatározásának optimalizálására irányul.

    Korábban az ilyen átalakításokat azonnal, a pack-fájl értelmezése közben hajtották végre, és csak a memóriában tárolták, ami nem tette lehetővé az ilyen indexek újbóli felhasználását, és arra kényszerítette a felhasználót, hogy minden alkalommal generálja az indexet. Az indexépítési művelet lényege egy objektum-pozíción párokból álló tömb létrehozása és ennek pozíció szerinti rendezése, ami nagy pack-fájlok esetén sok időt igényelhet.

    Például az objektumok tartalmának megjelenítése, amely közvetlen indexet használ, 62-szer gyorsabban zajlott, mint az objektumok méretének megjelenítése, amely során a pozíciók és az objektumok közötti kapcsolat adatai nem voltak indexelve. Miután a visszafelé indexet használták, ezek a műveletek körülbelül azonos időt vettek igénybe. A visszafelé indexek a fetch és push parancsok során a már előkészített adatok közvetlen lemezes továbbításával is felgyorsítják az objektumok küldési műveleteit. Alapértelmezés szerint a visszafelé indexek nem jönnek létre, az előállításukhoz a "git config pack.writeReverseIndex true" beállítás engedélyezése szükséges, majd a tároló csomagolásához a "git repack -Ad" parancs futtatása.

  • Teljesítmény-optimalizálások kerültek bevezetésre, amelyek a commit-graph fájlformátum bevezetésén alapulnak, amelyet a commit-információkhoz való hozzáférés optimalizálására használnak, valamint a commit generációs szám új adatain, amelyek a commitokkal kapcsolatos egyéb műveletek felgyorsításához használhatók.
  • Kibővítették a fő ágnév felülbírálásának lehetőségeit, amely az új tárolókban alapértelmezés szerint alkalmazásra kerül (init.defaultBranch beállítás). Amikor külső tárolókra hivatkozik, a git megpróbálja lekérni azt az ágat, amelyre a HEAD utal, vagyis ha a külső szerver alapértelmezés szerint a "main" ágat használja, a "git clone" parancs megpróbálja helyileg lekérni a "main"-t. A Git 2.31-től a hasonló lekérdezés támogatása most már üres tárolók számára is megvalósult. Például új tároló helyi klónozása esetén, mielőtt az első javításokat hozzáadnák, a helyi másolat most az alapértelmezett külső ág nevével fog rendelkezni. szerveren az alapértelmezett fő ág nevét.
  • A "git rev-list" parancshoz hozzáadódott a "—disk-usage" opció, amely lehetővé teszi az objektumok méretének összesítő adatait.
  • A várható backend csere előkészítéseként jelentősen optimalizálták az átnevezések meghatározását.
  • A támogatás megszűnt a régi PCRE1 reguláris kifejezés könyvtárhoz.
  • Lehetőséget kapott a rövidített linkek kötelező letiltása, amely függetlenül működik a hash algoritmustól. A letiltás a core.abbrev paraméter értékének "no"-ra állításával aktiválható.
  • A "git rev-parse" parancshoz hozzáadva a "—path-format=(absolute|relative)" opció, amely lehetővé teszi a relatív vagy abszolút utak kimenetének egyértelmű meghatározását.
  • A Bash automatikus kiegészítő scriptjeiben egyszerűbbé vált a saját "git" alparancsok kiegészítési szabályainak hozzáadása.
  • A „git bundle” parancshoz hozzáadva a „—stdin” opció, amely lehetővé teszi a hivatkozások olvasását a standard bemenetről.
  • A „git log” parancshoz új opció adva: „—diff-merges=<how>”.
  • A „git ls-files” parancshoz hozzáadva a „—deduplicatecan” opció, amely eltávolítja a duplikált elemeket a kimenetből.
  • Új maszkok kerültek hozzáadásra a commit tartományának kizárására: „<rev>^!” és „<rev>^-<n>”.
  • A „git range-diff” parancshoz hozzáadva a „—left-only” és „—right-only” opciók, amelyek csak a hasonlítandó tartomány egyik oldalát mutatják.
  • A „git diff” és „git log” parancsokhoz hozzáadva a „—skip-to=<path>” és „—rotate-to=<path>” opciók, amelyek lehetővé teszik a kezdeti utak kihagyását vagy a végükre való áthelyezését.
  • A „git difftool” parancshoz hozzáadva a „—skip-to=<path>” opció, amely lehetővé teszi a megszakított munkamenet folytatását egy tetszőleges útról.
  • A viselkedési kódex (Code-of-conduct), amely meghatározza a fejlesztők közötti konfliktusok megoldásának alapelveit, frissítve lett a 2.0 verzióra (korábban az 1.4-es verziót használták).

    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