Liberigo de distribuita fontkontrolsistemo Git 2.25

Disponebla liberigo de la distribuata fontkontrolsistemo git 2.25.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 583 ŝanĝojn, preparitajn kun la partopreno de 84 programistoj, el kiuj 32 partoprenis en evoluo por la unua fojo. Ĉefa novigoj:

  • La ebleco de parta klonado alproksimiĝas al stabiligo kaj plena preteco, permesante al vi transdoni nur parton de la datumoj kaj labori kun nekompleta kopio de la deponejo. Tipa klono kopias ĉiujn datumojn de la deponejo, inkluzive de ĉiu versio de ĉiu dosiero en la ŝanĝhistorio. Por tre grandaj deponejoj, kopiado de datumoj rezultigas signifan kreskon de trafiko kaj diskospaco, eĉ se la programisto nur interesiĝas pri subaro de la dosieroj. Por faciligi preni nur parton de la funkcianta fontarbo, la nova eldono enkondukas eksperimentan "sparse-checkout" komandon kaj novan "--sparse" opcion por la "clone" komando.

    Antaŭe, la selektema klonada procezo estis farita per la tasko filtriloj por filtri nenecesan enhavon kaj la opcion "—ne-eltiro" por malŝalti plenigon de mankantaj dosieroj. Post tio, antaŭ ol plenumi la checkout-operacion, estis necese ebligi la agordon core.sparseCheckout kaj difini liston de ekskluditaj padŝablonoj en la dosiero .git/info/sparse-checkout. Ekzemple, por kloni sen blobs kaj malhelpi dosierojn esti ĉerpitaj el subdosierujoj de profundo 2 aŭ pli, vi povus ruli:

    git clone --filter=blob:none --no-checkout /your/repository/here repo
    $cd-deponejo
    $ kato >.git/info/sparse-checkout
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $git checkout .

    La nova komando "git sparse-checkout" multe simpligas la laboron kaj reduktas la procezon de organizado de laboro kun nekompleta deponejo al la sekvaj komandoj:

    git clone --filter=blob:none --sparse /your/repository/here deponejo
    git sparse-checkout set /path/to/check/out

    La komando sparse-checkout ebligas al vi agordi liston de vojoj por checkout (aro) sen mane agordi .git/info/sparse-checkout, kaj ankaŭ montri la aktualan liston de vojoj (listo) kaj ebligi aŭ malŝalti partajn elpagojn (aktivigi). /malŝalti).

    Por optimumigi laboron kun tre grandaj deponejoj kaj listoj de ŝablonoj, la "git config core.sparseCheckoutCone", kiu limigas permesitajn ŝablonojn (anstataŭ arbitraj .gitignore ŝablonoj, vi povas specifi ĉu ĉiuj vojoj kaj ĉiuj dosieroj en antaŭfiksita subdosierujo devas esti kontrolitaj). Ekzemple, se granda deponejo havas dosierujon "A/B/C" kaj la tuta laboro estas koncentrita en la subdosierujo "C", tiam kiam vi ebligas la sparseCheckoutCone-reĝimon, la komando "git sparse-checkout set A/B/". C" eltiros la tutan enhavon de "C", sed el "A" kaj "B" ĝi eltiros nur la partojn necesajn por labori kun "C".

  • El la dokumentaro ("git rebase -h"), ĉiuj referencoj al la opcio "--preserve-merges" estis forigitaj, kiu estis malrekomendita kaj devus esti uzata anstataŭe por migri aron da kommits.git rebase --rebase-merges".
  • Por plibonigi la legeblecon de mesaĝoj kun flikoj senditaj al dissendolistoj, la opcio "git format-patch —cover-from-description subject" estis aldonita, kiam specifite, la unua alineo de la branĉa priskriba teksto estas uzata kiel temo de la kovrila letero por aro da flikaĵoj.
  • Efektivigita subteno por la kombinita uzo de la komando "git apply -3way" kaj la agordo "merge.conflictStyle" ("git apply" nun konsideras la konfliktan priskribstilon de merge.conflictStyle kiam necesas solvi la konflikton post provo. por apliki flikdosieron al la deponejo).
  • La funkciodifinkodo uzata en operacioj kiel "git diff/grep --show-function/-function-context" estis etendita por subteni difinajn funkciolimojn en lingvoprogramoj. eliksiro.
  • Nova opcio estis aldonita al "git add", "git commit", "git reset" kaj aliaj komandoj - "-pathspec-from-file", kiu ebligas ŝargi liston de vojoj el dosiero aŭ eniga fluo. , anstataŭ listigi ilin sur la komandlinio.
  • La problemo pri detektado de renomoj ĉe la dosierujo dum skribado de komitaĵoj estis solvita. La difino ne funkciis se la enhavo de subdosierujo estis movita al la radiko de la deponejo.
  • Komenca efektivigo de la restrukturita "git add -i" komando estis proponita, permesante al vi aldoni ŝanĝitan enhavon interage, reverkitan de Perl al C. Simila relaboro de la komando "git add -p" okazas.
  • La komando "git log -graph" estis refactorigita, generante ASCII-bildon de grafeo kun la historio de ŝanĝoj en la deponejo. La reverkado ebligis signife plibonigi kaj simpligi la produktaĵon sen distordi la strukturon de la rakonto, kiu, ekzemple, solvis la problemon kun la bildo etendiĝanta preter la fina linio-larĝo.
  • La opcio "git log --format=.." permesas ŝanĝi la eligformaton,
    etendita kun subteno por la flagoj "l/L" por montri nur la parton de la retadreso indikita antaŭ la simbolo "@" (ekzemple, utila kiam ĉiuj programistoj havas ĉiujn retpoŝtojn en la sama domajno).
  • Aldonis subkomandon "set-url" al la komando "git submodule".
  • Testkompletoj estis ĝisdatigitaj en preparo por la transiro al
    haŝalgoritmo SHA-2 anstataŭ SHA-1.

fonto: opennet.ru

Aĉetu fidindan gastigadon por retejoj kun DDoS-protekto, VPS-VDS-serviloj 🔥 Aĉetu fidindan retejan gastigadon kun DDoS-protekto, VPS VDS-servilojn | ProHoster