Post duos menses evolutionis, systema distributum moderationis fontium Git 2.51 editum est. Git summe productivum est et instrumenta evolutionis non linearis praebet, quae ramis ramosis et coniunctis nituntur. Ad integritatem historiae et resistentiam mutationibus retroactivis confirmandam, implicita hashing totius historiae prioris in singulis committis adhibetur, necnon subscriptiones digitales singularum pittaciorum et committorum a creatoribus. Codex Git sub licentia GPLv2+ distribuitur.
Comparata cum priore versione, nova versio 506 mutationes continet, paratas cum participatione 91 elaboratorum (21 novi erant in evolutione Git). Innovationes praecipuae (1, 2, 3):
- Efficacitas mandatorum "git push" et "git fetch" in repositoriis cum magno numero nexuum emendata est. Acceleratio per renovationem nexuum in modo fasciculorum (batch mode) efficitur, in quo plures nexus in una transactione simul tractantur, loco creationis transactionis separatae ad renovandum quemque nexum. Optimizatio celeritatem partis administrativae "reftable" significanter auxit, quae nunc partem administrativam "files" in efficacia superat. Exempli gratia, in repositorio probationis cum decem milibus nexuum, efficacia "git fetch" 10 vicibus aucta est cum parte administrativa "reftable" adhibita est, et 22 vicibus cum parte administrativa "files" adhibita est. Pro "git push", incrementum 1.25 et 18 vicibus respective erat.
- Nova methodus ad partes repositorii, quae non ad res inaccessibiles vestigandas, quae a ramis vel notis in repositorio non referuntur, non pertinent, convasandas proponitur. Informationes de rebus inaccessibilibus in fasciculis fasciculorum separatis ("fasciculi cruft") servantur, quod ad necessitatem duxit eas in indicibus fasciculorum multiplicium (MIDX) reflectendi, ut res tegerentur quae initio inaccessibiles erant et solum in fasciculo cruft servatae, sed deinde post mutationem eas referentem attingibiles factae sunt.
In nova versione, exemplaria addita rerum attingibilium, quae solum in fasciculis cruft repositae sunt, servantur cum fasciculi fasciculorum repackantur. Haec mutatio efficit ut copia fasciculorum fasciculorum ad res attingibiles reponendas adhibita res non contineat quae alias res extra hanc copiam repositas referunt. Ad contenta fasciculorum cruft inaccessibilia ex indicibus multipack (MIDX) excludenda, optio "repack.MIDXMustContainCruft" proponitur, quae magnitudinem talium indicum insigniter reducere permittit. Optio in repositorio GitHub activata magnitudinem indicum MIDX 38% minuit, scripturam ad indices MIDX 35% acceleravit, et efficaciam legendi 5% auxit.
- Optio "--path-walk" mandato "git pack-objects" addita est, novam methodum ad colligendas informationes de obiectis cum fasciculos fasciculorum recompinguntur permittens. Loco obiecta ordine revisionis percurrendi, modus "--path-walk" obiecta per semitas fasciculorum percurrit, permittens omnia obiecta cum eadem semita fasciculi simul compactari. Haec methodus heuristicam quae hashing utitur ad relationem obiecti ad semitam fasciculi determinandam eliminat, et necessitatem ordinandi obiecta ante compactionem tollit. Modus "--path-walk" fasciculos fasciculorum multo minores producit quam cum obiecta per hashes congregantur.
- Forma ad commutandas status arboris operariae et indicum reconditi in repositorio cum mandato "git stash" creato definitur. Nova forma mutationes reconditas ut seriem committationum codificat. Submandata "git stash import" et "export" praebentur, quae ad transferendos status reconditos ex uno systemate in alterum et eos propellendos vel extrahendos quasi rami regulares vel notae essent, adhiberi possunt. `git stash export --to-ref refs/stashes/my-stash` `git push origin refs/stashes/my-stash β¦ git fetch origin '+refs/stashes/*:refs/stashes/*' git stash import refs/stashes/my-stash`
- Mandatum "git cat-file", quod contenta rerum specificatarum edit, nunc informationes de rebus absentibus (e.g. propter corruptionem repositorii) et submodulis ostendit cum optiones "--batch" et "--batch-check" adhibentur. Antehac, cum semitam ad submodulum specificabas, mandatum "git cat-file --batch-check" "missing" editura erat, sed nunc identificatorem rerum ostendet.
- Mandatum "git log" optimizationes filtrorum Bloom adhibet ad investigationes historicas accelerandas cum filtra cum multis viis fasciculorum specificantur, ut "git log - path/to/a path/to/b".
- Mandata 'git switch' et 'git restore', quae ab anno 2019 experimentalia habita sunt, stabilizata sunt. Mandata tamquam aequivalentia moderna 'git checkout' exhibentur, facultates illius mandati, quae laxe conexae sunt, separantes, ut puta ramos manipulare (mutare et creare) et fasciculos in directorio operario restituere.
- Mandatum "git whatchanged", aequivalens "git log --raw", iam obsoletum est et ad remotionem in ramo Git 3.0 destinatum est.
- Mandatum `git for-each-ref` nunc optionem `--start-after` habet, quae una cum optione `--count` adhiberi potest ad exitum paginatum praebendum.
- Mandata 'git merge' et 'git pull' nunc optionem '--compact-summary' habent ut forma summaria compacta loco formae diffstat utatur.
- Basis codicis Git clavem clavem "bool", in norma C99 introductam, admittit et quasdam facultates experimentales C99 in Git adhibitas documentat (exempli gratia, "(struct foo){ .member = value };" medio anno 2026 permitti destinatur). Compilator C99-capax Git ab anno 2021 necessarius est, sed facultates C99 perquam caute implementantur ut compatibilitas cum compilatoribus qui normam tantum partim sustinent servetur.
- Π ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΏΡΠΈΡΠΌΠ° ΠΏΠ°ΡΡΠ΅ΠΉ Π²Π½Π΅ΡΠ΅Π½Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ, ΡΠ°Π·ΡΠ΅ΡΠ°ΡΡΠΈΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΠΏΠ°ΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΠΎΠΌ, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ΄ Π½Π°ΡΡΠΎΡΡΠΈΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΏΡΠ°Π²ΠΈΠ»Π°ΠΌ ΠΏΡΠΈΡΠΌΠ° ΠΏΠ°ΡΡΠ΅ΠΉ Π² ΡΠ΄ΡΠΎ Linux.
- Index mutationum gravium quae in ramo Git 3.0 applicabuntur renovatus est. Mutationes notabiles in proxima versione Git 3.0 includunt usum implicitum identificatorum obiectorum SHA-256 fundatorum cum nova repositoria initiantur, et usum formae "reftable" ad servandas referentias ramorum et inscriptionum in repositorio (usando repositorium in bloccis ex proiecto JGit, ad servandas maximas referentiarum copias optimizatum).
Source: opennet.ru
