Liberasyon sistèm kontwòl sous distribiye Git 2.25

Disponib lage yon sistèm kontwòl sous distribiye git 2.25.0. Git se youn nan sistèm kontwòl vèsyon ki pi popilè, serye ak pèfòmans segondè, ki bay zouti devlopman fleksib ki pa lineyè ki baze sou branch ak fizyon. Pou asire entegrite istwa a ak rezistans nan chanjman retwoaktif, yo itilize hashing implicite nan tout istwa anvan an nan chak komèt; li posib tou pou sètifye tag endividyèl ak komèt ak siyati dijital devlopè yo.

Konpare ak lage anvan an, nouvo vèsyon an enkli 583 chanjman, ki te prepare avèk patisipasyon 84 devlopè, nan yo ki 32 te patisipe nan devlopman pou premye fwa. Prensipal la inovasyon:

  • Posiblite pou klonaj pasyèl ap apwoche estabilizasyon ak preparasyon konplè, sa ki pèmèt ou transfere sèlman yon pati nan done yo ak travay ak yon kopi enkonplè nan repozitwa a. Yon script tipik kopye tout done ki soti nan depo a, ki gen ladan chak vèsyon nan chak dosye nan istwa chanjman an. Pou depo trè gwo, kopye done rezilta nan yon ogmantasyon siyifikatif nan trafik ak espas disk, menm si pwomotè a se sèlman enterese nan yon ti gwoup nan dosye yo. Pou fè li pi fasil pou rekipere sèlman yon pati nan pye bwa sous k ap travay la, nouvo lage a entwodui yon kòmand eksperimantal "sparse-checkout" ak yon nouvo opsyon "--sparse" pou kòmand "klonaj".

    Précédemment, pwosesis klonaj selektif la te fèt atravè travay la filtè pou filtre kontni ki pa nesesè ak opsyon "-pa gen okenn kesye" pou enfim ranpli dosye ki manke yo. Apre sa, anvan ou fè operasyon kesye a, li te nesesè yo pèmèt anviwònman an core.sparseCheckout epi defini yon lis modèl chemen eskli nan dosye a .git/info/sparse-checkout. Pou egzanp, pou klonaj san tach epi anpeche dosye yo soti nan sous-dosye ki gen pwofondè 2 oswa plis, ou ta ka kouri:

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

    Nouvo "git sparse-checkout" kòmandman senplifye travay la anpil epi redwi pwosesis òganize travay ak yon depo enkonplè nan kòmandman sa yo:

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

    Kòmandman sparse-checkout la pèmèt ou mete yon lis chemen pou kesye (set) san yo pa manyèlman konfigirasyon .git/info/sparse-checkout, osi byen ke montre lis aktyèl la nan chemen (lis) ak pèmèt oswa enfim kesye pasyèl (pèmèt). / enfim).

    Pou optimize travay ak depo gwo anpil ak lis modèl, "git config core.sparseCheckoutCone", ki limite modèl pèmèt (olye pou modèl abitrè .gitignore, ou ka presize si yo ta dwe tcheke tout chemen ak tout dosye ki nan yon sous-anyè). Pou egzanp, si yon depo gwo gen yon anyè "A/B/C" epi tout travay la konsantre nan sou-anyè "C", Lè sa a, lè ou pèmèt mòd sparseCheckoutCone, lòd la "git sparse-checkout set A/B/ C" pral ekstrè tout sa ki nan "C", men soti nan "A" ak "B" li pral ekstrè sèlman pati ki nesesè yo travay ak "C".

  • Soti nan dokiman an ("git rebase -h"), tout referans a "--preserve-merges" opsyon yo te retire, ki te depreke epi yo ta dwe itilize olye pou emigre yon seri komite.git rebase --rebase-fusions".
  • Pou amelyore lizibilite mesaj ak plak yo voye nan lis adrès, yo te ajoute opsyon "git format-patch —cover-from-description subject" la, lè yo espesifye, yo itilize premye paragraf ki soti nan tèks deskripsyon branch lan kòm sijè a. lèt kouvèti pou yon seri plak.
  • Aplike sipò pou itilizasyon konbine kòmandman "git apply -3way" ak anviwònman "merge.conflictStyle" ("git aplike" kounye a pran an kont style deskripsyon konfli soti nan merge.conflictStyle lè li nesesè pou rezoud konfli a apre yo fin eseye eseye. pou aplike yon fichye patch nan repozitwa a).
  • Kòd definisyon fonksyon yo itilize nan operasyon tankou "git diff/grep --show-function/-function-context" te pwolonje pou sipòte defini limit fonksyon nan pwogram langaj. Eliksir.
  • Yon nouvo opsyon te ajoute nan "git add", "git commit", "git reset" ak lòt kòmandman - "-pathspec-from-file", ki fè li posib pou chaje yon lis chemen ki sòti nan yon dosye oswa yon kouran antre. , olye pou yo lis yo sou liy lòd la.
  • Pwoblèm nan ak detekte chanje non nan nivo anyè lè ekri komèt yo te rezoud. Definisyon an pa t travay si sa ki nan yon sous-répertoire yo te deplase nan rasin nan depo a.
  • Yo te pwopoze yon premye aplikasyon kòmandman reamenaje "git add -i" la, ki pèmèt ou ajoute kontni chanje entèaktif, reekri soti nan Perl nan C. Yon retravay menm jan an nan "git ajoute -p" lòd la ap fèt.
  • Kòmandman "git log -graph" la te refactorize, jenere yon imaj ASCII nan yon graf ak istwa chanjman nan depo a. Rivork la te fè li posib amelyore anpil ak senplifye pwodiksyon an san yo pa defòme estrikti istwa a, ki, pou egzanp, rezoud pwoblèm nan ak foto a pwolonje pi lwen pase lajè liy tèminal la.
  • Opsyon "git log --format=.." pèmèt ou chanje fòma pwodiksyon an,
    pwolonje ak sipò pou drapo "l/L" yo montre sèlman yon pati nan adrès imel ki endike anvan senbòl "@" la (pa egzanp, itil lè tout devlopè gen tout imèl nan menm domèn).

  • Te ajoute yon soukòmand "set-url" nan lòd "git submodule".
  • Twous tès yo te mete ajou nan preparasyon pou tranzisyon an
    hashing algorithm SHA-2 olye de SHA-1.

Sous: opennet.ru

Add nouvo kòmantè