Lage sistèm kontwòl sous distribiye Git 2.31

Sistèm kontwòl sous distribiye Git 2.31 disponib kounye a. 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 hachaj implicite nan tout istwa anvan an nan chak komite, epi 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 679 chanjman, prepare ak patisipasyon 85 devlopè, nan yo ki 23 te patisipe nan devlopman pou premye fwa. Prensipal inovasyon:

  • Te ajoute kòmandman "git antretyen", ki pèmèt ou fè travay peryodik sou sistèm ki pa sipòte cron. Pou egzanp, lè l sèvi avèk yon nouvo lòd, ou ka fè aranjman pou pwosesis anbalaj depo a kouri detanzantan, pou ke ou pa oblije rete tann jiskaske depo a fèmen lè anbalaj otomatikman fèt pandan y ap kouri kòmandman divès kalite. Kòmandman an "git antretyen" pèmèt ou fè optimize ak operasyon yo kenbe estrikti nan pi bon nan repozitwa a nan background nan, san yo pa bloke sesyon an entèaktif - yon fwa chak èdtan, travay yo fèt pou telechaje fre objè ki soti nan depo aleka ak mete ajou. dosye ak graf komèt la, epi pwosesis pou anbalaj repozitwa a kòmanse chak swa.
  • Te ajoute sipò pou kenbe yon endèks ranvèse (revindex) sou disk pou dosye pake. Sonje byen, Git estoke tout done nan fòm objè, ki sitiye nan dosye separe. Pou ogmante efikasite nan travay ak repozitwa a, objè yo mete anplis nan dosye pake, kote enfòmasyon yo prezante nan fòm lan nan yon kouran nan objè ki swiv youn ak lòt (yon fòma menm jan yo itilize lè yo transfere objè ak git fetch la ak git push. kòmandman). Pou chak fichye pake, yo kreye yon fichye endèks (.idx), ki pèmèt ou byen vit detèmine konpanse nan fichye pake kote objè yo estoke lè l sèvi avèk idantifyan objè a. Entwodwi nan Git 2.31, endèks la ranvèse (.rev) vize a optimize pwosesis la nan detèmine yon idantifyan objè apati enfòmasyon sou plasman an nan yon objè nan yon dosye pake.

    Précédemment, konvèsyon sa yo te fèt sou vole pandan y ap analize fichye pake a epi yo te estoke sèlman nan memwa, sa ki pa te pèmèt endis menm jan yo dwe reyitilize ak fòse endèks la yo dwe pwodwi chak fwa. Operasyon an nan bati yon endèks vini desann nan konstwi yon etalaj de pè objè-pozisyon ak klasman li pa pozisyon, sa ki ka pran yon tan long pou dosye gwo pake.

    Pa egzanp, yon operasyon pou montre sa ki nan objè yo, ki itilize yon endèks dirèk, te 62 fwa pi vit pase yon operasyon pou montre gwosè objè yo, pou ki done pozisyon-a-objè yo pa t endis. Apre yo fin itilize endèks la ranvèse, operasyon sa yo te kòmanse pran apeprè menm tan an. Endèks ranvèse tou pèmèt ou akselere operasyon voye objè lè egzekite chache ak pouse kòmandman pa dirèkteman transfere done ki pare soti nan disk. Pa defo, endis ranvèse yo pa kreye; pou jenere yo, ou bezwen aktive paramèt "git config pack.writeReverseIndex true" epi answit pake repozitwa a ak kòmandman "git repack -Ad".

  • Te ajoute optimize pèfòmans ki baze sou aparans nan fòma fichye komite-graf, yo itilize pou optimize aksè a enfòmasyon sou komèt, nouvo done sou nimewo jenerasyon komèt la, ki ka itilize pou akselere operasyon adisyonèl ak komèt.
  • Te ajoute opsyon pou redefini non branch prensipal yo itilize pa default nan nouvo depo (anviwònman init.defaultBranch). Lè w ap jwenn aksè nan repozitwa ekstèn, git eseye tcheke branch HEAD lonje dwèt sou, sa vle di. si sèvè ekstèn lan sèvi ak "prensipal" branch pa default, Lè sa a, "git klon" operasyon an pral eseye tcheke deyò "prensipal" lokalman. Git 2.31 kounye a sipòte kalite sa a kesye pou repozitwa vid. Pa egzanp, lè klonaj yon nouvo depo lokalman anvan ou ajoute premye plak yo nan li, kopi lokal la pral kounye a genyen non an default en mete sou sèvè ekstèn lan.
  • Te ajoute yon opsyon --disk-usage nan lòd "git rev-list" pou bay yon rezime gwosè objè yo.
  • An atandan chanjman k ap vini nan backend fizyon an, deteksyon chanje non te siyifikativman optimize.
  • Sipò pou eritaj bibliyotèk ekspresyon regilye PCRE1 la sispann.
  • Li posib pou fòseman entèdi itilizasyon lyen ki pi kout, kèlkeswa algorithm hachaj la. Entèdiksyon an pèmèt lè w bay valè "non" nan paramèt core.abbrev la.
  • Te ajoute opsyon "--path-format=(absolute|relative)" nan lòd "git rev-parse" pou presize klèman si chemen relatif oswa absoli yo ta dwe pwodiksyon.
  • Scripts fini Bash fè li fasil pou ajoute règ fini pou pwòp "git" kòmandman ou yo.
  • Te ajoute yon opsyon --stdin nan "git pake" kòmandman an pou li referans ki soti nan kouran estanda D '.
  • Yon nouvo opsyon "--diff-merges=" te ajoute nan lòd "git log".
  • Te ajoute opsyon "--deduplicatecan" nan lòd "git ls-files" pou elimine pwodiksyon kopi.
  • Te ajoute nouvo mask pou eskli yon seri de komèt - "^!" ak "^-".
  • Te ajoute opsyon "--left-only" ak "--right-only" nan kòmandman "git range-diff" pou montre sèlman yon bò nan seri a ke yo konpare.
  • Te ajoute opsyon --skip-to=" ak "--rotate-to=" nan kòmandman "git diff" ak "git log" pou sote oswa deplase nan fen premye chemen yo.
  • Te ajoute opsyon "--skip-to=" nan lòd "git difftool" pou rekòmanse yon sesyon entèwonp soti nan yon chemen abitrè.
  • Kòd Konduit la, ki defini prensip debaz yo pou rezoud sitiyasyon konfli ant devlopè yo, te mete ajou nan vèsyon 2.0 (anvan yo te itilize vèsyon 1.4).

    Sous: opennet.ru

Add nouvo kòmantè