Liberigo de distribuita fontkontrolsistemo Git 2.24

Disponebla liberigo de la distribuata fontkontrolsistemo git 2.24.0. Git estas unu el la plej popularaj, fidindaj kaj alt-efikecaj versikontrolaj sistemoj, kiu disponigas flekseblajn ne-liniajn evoluilojn bazitajn sur disbranĉiĝo kaj kunfandado de branĉoj. Por certigi la integrecon de la historio kaj reziston al retroaktivaj ŝanĝoj, implicita hashing de la tuta antaŭa historio en ĉiu kommit estas uzata, ankaŭ eblas kontroli individuajn etikedojn kaj kommitaĵojn per ciferecaj subskriboj de la programistoj.

Kompare kun la antaŭa eldono, la nova versio inkludis 544 ŝanĝojn, preparitajn kun la partopreno de 78 programistoj, el kiuj 21 partoprenis en evoluo por la unua fojo. Ĉefa novigoj:

  • Aldonita subteno por agordaj makrooj, per kiuj vi povas rapide ŝanĝi inter malsamaj aroj de agordoj sen eniri en detalojn pri la specifaj opcioj asociitaj kun ili. Helpe de makrooj, ne necesas memori, kiuj agordoj devas esti ŝanĝitaj por aktivigi tiun aŭ alian funkcion. Ekzemple, se granda deponejo estas malrapida, vi eble volas ŝanĝi al nova indeksa motoro, ebligi padprefiksan kunpremadon kaj ebligi la nespuritan dosierkaŝmemoron agordante index.version al 4 kaj ebligante core.untrackedCache. Makrooj permesas vin ne malŝpari tempon serĉante la ĝustan solvon en la dokumentado, sed tuj aktivigi agordojn kun optimumigoj por deponejoj kun granda nombro da dosieroj:

    git config feature.manyFiles vera

  • Ebligita defaŭlte estas konservado de objektoj en formo de kommit-grafo (commit-graph), en kiu ne linia listo de hashoj de objektoj kun ligiloj al aliaj objektoj, sed strukturo en formo de grafeo estas uzata por indeksado. . Se antaŭe, por determini la eldonojn, kiuj enhavas certan riparon, necesis ŝarĝi ĉiun objekton el disko por serĉi ligilojn, tiam, kiam oni konservas en formo de grafikaĵo, oni povas tuj determini ĉiujn necesajn ligilojn. Ŝanĝi al stokado en formo de kommit-grafo en la Linukso-kerno kaj Git-deponejoj permesis al ni atingi preskaŭ duoblan pliiĝon en la agado de operacioj kun branĉoj. Por ebligi la novan stokan metodon post ĝisdatigo al Git 2.24, vi devas ruli la komandon "git gc".

    Inter la ŝanĝoj asociitaj kun commit-graph, ni ankaŭ rimarkas, ke la efektivigo de la operacio-progresindikilo en kommit-graph-rilataj komandoj ("git commit-graph write", "git commit-graph verify", ktp.) estis alportita. al komuna formo kun aliaj ordonoj. .). La progresindikilo nun montriĝas nur por la terminalo defaŭlte (uzu la opcion "-[ne-]progreso" por ŝanĝi la konduton). Krome, nova agorda parametro fetch.writeCommitGraph estis aldonita, kiu ebligas aŭtomatan ĝisdatigon de la dosiero kun la commit-grafo dum "git fetch" operacioj (ĉiuj kommit-oj prenitaj de eksteraj deponejoj tuj iros al la commit-grafo sen neceso rulu aŭto-gc aparte);

  • Aldonita komando por anstataŭigi la ŝanĝhistorion - "git filter-repo", kiu estas pli simpla alternativo al la komando "git filtrilo-branĉo» fari operaciojn pri la historio de ŝanĝoj en la deponejo (ekzemple, forigi dosieron el la deponejo aŭ retrovi la historion de ŝanĝoj al specifa dosierujo). Por plibonigi efikecon, anstataŭ ordona analizo de komit-post-commit, git filter-repo faras operaciojn sur la historia reprezentado en la formo de kontinua fluo.

    Historia filtrado estas farita per la opcio "-path-{glob,regex}", kiu ebligas al vi uzi kaj simplajn maskojn kaj regulajn esprimojn. Estas ankaŭ opcioj por fari serĉon kaj anstataŭigi aŭ purigi binarajn objektojn, kiuj estas pli grandaj ol specifita grandeco. Ĉiu reverkita komit estas provizita per nova SHA-1 hash-identigilo kaj ĉiuj referencoj al la anstataŭigita kommit estas ĝisdatigita laŭ la nova identigilo.

    Por montri resumon de statistikoj pri la deponejo (nombro da objektoj laŭ tipo, plej grandaj dosieroj kaj dosierujoj, kiuj etendaĵoj postulas pli da diskospaco, ktp.), la opcio "-analizi" estas provizita. Por pligrandigi la funkciecon, eblas konekti arbitrajn revokilojn en Python, per kiuj vi povas kaj krei novajn subkomandojn kaj prilabori diversajn eventojn (ekzemple novajn dosiertipojn);

  • Aldonita "--end-of-options" opcio por apartigi opciojn de ligilo-nomoj, kiuj povas komenci per "-" signo kaj esti traktita kiel opcioj ("git log --end-of-options -super-dangerous-option" ). Se en la ĉiutaga vivo tiaj nomoj povas esti eskapataj kiel "git log 'refs/heads/—super-dangerous-option'", tiam la skriptoj povus havi problemojn difinante la nomspacon. La ĝenerale akceptita limigilo " - " ne aplikeblas ĉi-kaze, ĉar ĝi jam estas uzata por apartigi liginomojn de dosieroj (ekzemple, “git log —end-of-options —super-dangerous-option ^master — path/to /dosiero”);
  • Aldonitaj "--strategy" kaj "--strategy-option" opcioj al "git rebase --rebase-merges" por elekti strategioj pri fuzio;
  • Aldonita nova ".git/hooks/pre-merge-commit" pritraktilo kiu estas vokita post kunfandado estas finita sed antaŭ ol la rezulta kommit estas skribita;
  • Subteno por kompletigo de agordaj variabloj rilate al la agordoj de specifaj komandoj estis aldonita al la komandkompletiga motoro.
    Ekzemple, se vi bezonas tajpi "git -c core.autocrlf=false aldoni vojon/al/mia/dosiero" sed ne memoras la ĝustan nomon de la variablo "core.autocrlf", vi povas premi Tab kaj akiri aludo.

Aldone, Git-programistoj aldonis kodo de konduto por partoprenanto de la projekto, kiu difinas la bazajn principojn por solvi konfliktajn situaciojn. La dokumento baziĝas sur la rekomendoj "Kontribuanto Interligo", uzata en multaj malfermfontaj projektoj, inkluzive de la Linukso-kerno, Eclipse, Freedesktop, GitLab, Ruby kaj Kubernetes. La dokumento difinas egalajn ŝancojn por ĉiuj partoprenantoj, sendepende de ilia mondkoncepto, aĝo, sekso, religiaj preferoj, eduka nivelo, socia statuso kaj nacieco. La komunumo bonvenigas amikan formon de komunikado, kompreno, empatio por la problemoj de aliaj partoprenantoj, akceptante konstruivan kritikon, kaj farante la plej bonajn decidojn por la tuta komunumo. Trolado, ofenda komunikado, provoj de humiligo, ĉikano, malobservoj de privateco, malkaŝo de personaj informoj kaj aliaj agoj kiuj povas esti konsideritaj malkonvenaj por profesia komunikado ne estas permesitaj.

fonto: opennet.ru

Aldoni komenton