Git 2.38 source control release

Ang paglabas ng distributed source control system na Git 2.38 ay inihayag. Ang Git ay isa sa pinakasikat, maaasahan at may mataas na pagganap na mga sistema ng kontrol ng bersyon, na nagbibigay ng nababaluktot na non-linear na mga tool sa pagpapaunlad batay sa pagsasanga at pagsasama. Upang matiyak ang integridad ng kasaysayan at paglaban sa mga retroactive na pagbabago, ang implicit na pag-hash ng buong nakaraang kasaysayan ay ginagamit sa bawat commit; posible ring patunayan ang mga indibidwal na tag at commit gamit ang mga digital na lagda ng mga developer.

Kung ikukumpara sa nakaraang paglabas, ang bagong bersyon ay may kasamang 699 na pagbabago, na inihanda kasama ang pakikilahok ng 92 na mga developer, kung saan 24 ang nakibahagi sa pag-unlad sa unang pagkakataon. Mga pangunahing inobasyon:

  • Kasama sa pangunahing istraktura ang "scalar" utility, na binuo ng Microsoft para sa pamamahala ng malalaking repositoryo. Ang utility ay orihinal na isinulat sa C#, ngunit ang git ay may kasamang binagong bersyon sa C. Ang bagong utility ay naiiba sa git command sa pamamagitan ng pagpapagana sa pamamagitan ng default ng mga karagdagang feature at setting na nakakaapekto sa performance kapag nagtatrabaho sa napakalaking repository. Halimbawa, kapag gumagamit ng scalar nalalapat ito:
    • Bahagyang pag-clone upang gumana sa isang hindi kumpletong kopya ng repositoryo.
    • Built-in na mekanismo para sa pagsubaybay sa mga pagbabago sa file system (FSmonitor), na nagbibigay-daan sa iyong gawin nang hindi naghahanap sa buong gumaganang direktoryo.
    • Mga index na sumasaklaw sa mga bagay sa iba't ibang pack file (multi-pack).
    • commit-graph file na may commit graph index na ginagamit upang i-optimize ang access sa commit na impormasyon.
    • Pana-panahong trabaho sa background upang mapanatili ang pinakamainam na istraktura ng repositoryo sa background, nang hindi hinaharangan ang interactive na session (ginagawa ang trabaho isang beses sa isang oras upang aktibong mag-download ng mga sariwang bagay mula sa remote na imbakan at i-update ang file gamit ang commit graph, at ang proseso ng pag-iimpake ang imbakan ay sinisimulan tuwing gabi).
    • "sparseCheckoutCone" mode, na naglilimita sa mga pinapayagang pattern sa panahon ng bahagyang pag-clone.
  • Nagdagdag ng isang --update-refs na opsyon sa "git rebase" na utos upang i-update ang mga umaasa na sangay na nagsasapawan sa mga sangay na inililipat, sa halip na kailangang manu-manong i-checkout ang bawat umaasa na sangay upang lumipat sa kinakailangang commit.
  • Ginawang tugma ang "git rm" na utos sa mga bahagyang index.
  • Pinahusay ang pag-uugali ng command na "git mv AB" kapag naglilipat ng file mula sa isang workspace na may mga bahagyang index sa mode na "cone" patungo sa isang panlabas na saklaw na walang ganitong mode.
  • Ang format ng bitmap file ay na-optimize para sa pagtatrabaho sa malalaking repositoryo - isang opsyonal na index table ay naidagdag na may listahan ng mga napiling commit at ang kanilang mga offset.
  • Ang command na "git merge-tree" ay nagpapatupad ng bagong mode kung saan, batay sa dalawang tinukoy na commit, kinakalkula ang isang puno na may resulta ng merge, na parang pinagsama ang mga kasaysayan ng mga commit na ito.
  • Idinagdag ang setting na "safe.barerepository" upang makontrol ang kakayahang mag-host ng mga hubad na repositoryo (mga repositoryo na hindi naglalaman ng gumaganang puno) sa loob ng iba pang mga git repository. Kapag nakatakda sa "hayagang", magiging posible na gumana sa mga hubad na repository na matatagpuan lamang sa tuktok na direktoryo. Upang makapaglagay ng mga hubad na repositoryo sa mga subdirectory, gamitin ang "lahat" na halaga.
  • Ang utos na "git grep" ay nagdagdag ng opsyong "-m" (β€œβ€”max-count”), na katulad ng opsyon ng parehong pangalan sa GNU grep at nagbibigay-daan sa iyong limitahan ang bilang ng mga tugmang ipinapakita.
  • Ang command na "ls-files" ay nagpapatupad ng opsyon na "--format" upang i-configure ang mga output field (halimbawa, maaari mong paganahin ang output ng pangalan ng object, mga mode, atbp.).
  • Sa "git cat-file", kapag ipinapakita ang mga nilalaman ng mga bagay, posibleng isaalang-alang ang mga binding ng may-akda-email na tinukoy sa file ng mailmap.

Pinagmulan: opennet.ru

Magdagdag ng komento