Git 2.36 source control release

Pagkatapos ng tatlong buwan ng pag-develop, inilabas na ang distributed source control system na Git 2.36. 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, 717 na pagbabago ang pinagtibay sa bagong bersyon, na inihanda sa pakikilahok ng 96 na mga developer, kung saan 26 ang nakibahagi sa pag-unlad sa unang pagkakataon. Mga pangunahing inobasyon:

  • Ang mga command na "git log" at "git show" ay mayroon na ngayong opsyon na "β€”remerge-diff" na nagbibigay-daan sa iyong ipakita ang mga pagkakaiba sa pagitan ng pangkalahatang resulta ng merge at ang aktwal na data na makikita sa commit pagkatapos iproseso ang command na "merge" , na nagbibigay-daan sa iyong malinaw na suriin ang mga pagbabagong ginawa bilang isang resulta sa paglutas ng mga salungatan sa pagsasanib. Ang normal na "git show" na utos ay nag-indent ng iba't ibang mga resolusyon ng salungatan, na ginagawang mahirap maunawaan ang mga pagbabago. Halimbawa, sa screenshot sa ibaba ng linyang β€œ+/-” na walang indentation ay nagpapakita ng huling resolution ng conflict na nauugnay sa pagpapalit ng pangalan ng sha1 sa oid sa komento sa unang branch, at ang β€œ+/-” na may indentation ay nagpapakita ng inisyal paglutas ng salungatan na sanhi ng paglitaw ng isang karagdagang argumento sa pangalawang sangay sa dwim_ref() function.
    Git 2.36 source control release

    Kapag ginagamit ang opsyong "--remerge-diff," hindi pinaghihiwalay ang mga pagkakaiba sa pagitan ng mga resolusyon ng salungatan para sa bawat sangay ng magulang, ngunit ipinapakita ang pangkalahatang pagkakaiba sa pagitan ng file na may mga pagsasalungat sa pagsasanib at ng file na nalutas ang mga salungatan.

    Git 2.36 source control release

  • Nadagdagang flexibility sa pag-configure ng gawi para sa pag-flush ng mga cache ng disk sa pamamagitan ng isang tawag sa function na fsync(). Ang dating magagamit na parameter ng core.fsyncObjectFiles ay nahati sa dalawang variable ng pagsasaayos na core.fsync at core.fsyncMethod, na nagbibigay ng kakayahang mag-apply ng fsync hindi lamang sa mga object file (.git/objects), kundi pati na rin sa iba pang git structure tulad ng mga link ( .git /refs), mag-reflog at mag-pack ng mga file.

    Gamit ang core.fsync variable, maaari kang tumukoy ng isang listahan ng mga panloob na istruktura ng Git kung saan ang fsync ay tatawagin din pagkatapos ng isang write operation. Binibigyang-daan ka ng variable ng core.fsyncMethod na pumili ng paraan para sa pag-flush ng cache, halimbawa, maaari mong piliin ang fsync para gamitin ang system call na may parehong pangalan, o tukuyin ang writeout-only upang gamitin ang pagecache writeback.

  • Upang maprotektahan laban sa mga kahinaan na nagmamanipula sa pagpapalit ng mga .git na direktoryo ng ibang mga user sa mga nakabahaging seksyon, pinalakas ang pag-verify ng may-ari ng repositoryo. Ang pag-execute ng anumang git command ay pinapayagan na lang sa sarili nilang ".git" na mga direktoryo. Kung ang direktoryo na may repositoryo ay pagmamay-ari ng isa pang user, pagkatapos ay isang error ang ipapakita bilang default. Maaaring hindi paganahin ang gawi na ito gamit ang safe.directory na setting.
  • Ang command na "git cat-file", na nilayon para sa pag-output ng mga source content ng Git objects, ay dinagdagan ng opsyon na "--batch-command", na umaakma sa dating available na "--batch" at "--batch-check ” na mga command na may kakayahang adaptive na piliin ang uri ng output gamit ang β€œ contents <object>" para magpakita ng content o "info <object>" para magpakita ng impormasyon tungkol sa object. Bilang karagdagan, ang "flush" na utos ay sinusuportahan upang i-flush ang output buffer.
  • Sa command na "git ls-tree", na nilayon para sa pagbuo ng isang listahan ng mga nilalaman ng isang object tree, ang opsyon na "β€”oid-only" (β€œβ€”object-only”) ay idinagdag, katulad ng β€œβ€”name-only ”, na nagpapakita lamang ng mga object identifier upang pasimplehin ang tawag mula sa mga script. Ipinatupad din ang opsyong "--format", na nagpapahintulot sa iyo na tukuyin ang iyong sariling format ng output sa pamamagitan ng pagsasama-sama ng impormasyon tungkol sa mode, uri, pangalan at laki.
  • Ang command na "git bisect run" ay nagpapatupad ng pagtuklas ng hindi pagtatakda ng executable file flag para sa isang script at sa kasong ito ay nagpapakita ng mga error na may mga code 126 o 127 (dati, kung ang script ay hindi maipatakbo, ang lahat ng mga rebisyon ay minarkahan bilang may mga problema) .
  • Nagdagdag ng isang --refetch na opsyon sa "git fetch" na utos upang kunin ang lahat ng mga bagay nang hindi ipinapaalam sa kabilang partido ang tungkol sa mga nilalaman na nasa lokal na sistema. Ang gawi na ito ay maaaring maging kapaki-pakinabang para sa pagbawi mula sa mga pagkabigo kapag ang integridad ng lokal na data ay hindi sigurado.
  • Sinusuportahan na ngayon ng "git update-index", "git checkout-index", "git read-tree" at "git clean" ang mga partial index para mapahusay ang performance at makatipid ng espasyo sa mga repository na gumaganap ng mga partial index operations. cloning (sparse-checkout ).
  • Ang pag-uugali ng "git clone β€”filter=... β€”recurse-submodules" na utos ay nabago, na humahantong ngayon sa bahagyang pag-clone ng mga submodules (dati, kapag nagsasagawa ng mga naturang command, ang filter ay inilapat lamang sa pangunahing nilalaman, at ang mga submodules ay ganap na na-clone nang hindi isinasaalang-alang ang filter).
  • Ang utos na "git bundle" ay nagdagdag ng suporta para sa pagtukoy ng mga filter para sa piling paglalagay ng nilalaman, katulad ng mga partial cloning operations.
  • Idinagdag ang opsyong "--recurse-submodules" sa utos na "git branch" upang i-traverse ang mga submodules nang pabalik-balik.
  • Nag-aalok ang Userdiff ng bagong handler para sa wikang Kotlin.

Pinagmulan: opennet.ru

Magdagdag ng komento