Rilis sistem kontrol sumber sing disebarake Git 2.26

Kasedhiya release saka sistem kontrol sumber disebaraké git 2.26.0. Git minangka salah sawijining sistem kontrol versi sing paling populer, dipercaya lan kinerja dhuwur, nyedhiyakake alat pangembangan non-linear sing fleksibel adhedhasar cabang lan gabung. Kanggo mesthekake integritas sajarah lan resistance kanggo owah-owahan retroaktif, hashing implisit saka kabeh sajarah sadurungé ing saben commit digunakake, lan iku uga bisa kanggo nandhani tag individu lan commit karo teken digital saka pangembang.

Dibandhingake karo release sadurungé, 504 owah-owahan ditampa ing versi anyar, disiapake karo partisipasi 64 pangembang, kang 12 njupuk bagéyan ing pembangunan kanggo pisanan. Utama inovasi:

  • Default wis diuripake kanggo versi kapindho Protokol komunikasi Git, sing digunakake nalika klien nyambungake jarak jauh menyang server Git. Versi kapindho protokol kasebut misuwur amarga nyedhiyakake kemampuan kanggo nyaring cabang lan tag ing sisih server, ngasilake dhaptar link sing disingkat menyang klien. Sadurunge, sembarang printah narik bakal tansah ngirim klien dhaftar lengkap referensi ing kabeh repositori, sanajan klien mung nganyari siji cabang utawa mriksa sing salinan repositori anyar. Inovasi liyane sing misuwur yaiku kemampuan kanggo nambah kapabilitas anyar menyang protokol amarga fungsionalitas anyar kasedhiya ing toolkit. Kode klien tetep kompatibel karo protokol lawas lan bisa terus digunakake karo server anyar lan lawas, kanthi otomatis bali menyang versi pisanan yen server ora ndhukung sing kapindho.
  • Opsi "-show-scope" wis ditambahake menyang printah "git config", dadi luwih gampang kanggo ngenali panggonan ing ngendi setelan tartamtu ditetepake. Git ngidini sampeyan nemtokake setelan ing macem-macem panggonan: ing gudang (.git/info/config), ing direktori pangguna (~/.gitconfig), ing file konfigurasi sistem-wide (/etc/gitconfig), lan liwat printah. opsi baris lan variabel lingkungan. Nalika nglakokaké "git config" iku cukup angel kanggo ngerti ngendi persis setelan sing dikarepake ditetepake. Kanggo ngatasi masalah iki, opsi "--show-origin" kasedhiya, nanging mung nuduhake path menyang file sing setelan ditetepake, sing migunani yen sampeyan pengin ngowahi file kasebut, nanging ora mbantu yen sampeyan kudu ngganti nilai liwat "git config" nggunakake opsi "--system", "--global" utawa "-local". Opsi anyar "--show-scope" nampilake konteks definisi variabel lan bisa digunakake bebarengan karo -show-origin:

    $ git --list --show-scope --show-origin
    berkas global:/home/user/.gitconfig diff.interhunkcontext=1
    file global:/home/user/.gitconfig push.default=current
    […] local file:.git/config branch.master.remote=origin
    file lokal:.git/config branch.master.merge=refs/heads/master

    $ git config --show-scope --get-regexp 'diff.*'
    global diff.statgraphwidth 35
    lokal diff.colormoved polos

    $ git config --global --unset diff.statgraphwidth

  • Ing setelan naleni kredensial Panggunaan topeng ing URL diidini. Sembarang setelan lan kredensial HTTP ing Git bisa disetel kanggo kabeh sambungan (http.extraHeader, credential.helper) lan kanggo sambungan basis URL (kredensial.https://example.com.helper, credential.https: //conto. com.helper). Nganti saiki, wildcard kayata *.example.com mung diidini kanggo setelan HTTP, nanging ora didhukung kanggo ikatan kredensial. Ing Git 2.26, beda-beda iki diilangi lan, contone, kanggo ngiket jeneng panganggo menyang kabeh subdomain sing saiki bisa sampeyan nemtokake:

    [kredensial "https://*.example.com"]

    jeneng panganggo = ttaylorr

  • Ekspansi dhukungan eksperimen kanggo kloning parsial (klon parsial) terus, ngidini sampeyan nransfer mung bagean data lan nggarap salinan repositori sing ora lengkap. Rilis anyar nambahake perintah anyar "git sparse-checkout add", sing ngidini sampeyan nambah direktori individu kanggo ngetrapake operasi "checkout" mung ing bagean saka wit kerja, tinimbang dhaptar kabeh direktori kasebut bebarengan liwat printah "git sparse-checkout set" (sampeyan bisa nambah siji-siji direktori, tanpa nemtokake maneh dhaptar kabeh).
    Contone, kanggo kloning repositori git/git tanpa nggawe blobs, mbatesi checkout mung ing direktori root saka salinan sing digunakake, lan menehi tandha checkout kanggo direktori "t" lan "Dokumentasi", sampeyan bisa nemtokake:

    $ git clone --filter=blob:none --sparse [email dilindhungi]:git/git.git

    $cd git
    $ git sparse-checkout init --cone

    $ git sparse-checkout nambah t
    ....
    $ git sparse-checkout nambah Dokumentasi
    ....
    $ git dhaptar checkout jarang
    Dokumentasi
    t

  • Kinerja printah "git grep", sing digunakake kanggo nggoleki isi repositori saiki lan revisi historis, wis saya apik. Kanggo nyepetake telusuran, sampeyan bisa mindhai isi wit sing digunakake nggunakake macem-macem utas ("git grep -threads"), nanging telusuran ing revisi historis nganggo benang siji. Saiki watesan iki wis dibusak kanthi ngleksanakake kemampuan kanggo parallelize operasi maca saka panyimpenan obyek. Kanthi gawan, jumlah utas disetel padha karo jumlah inti CPU, sing saiki ora mbutuhake kanthi jelas nyetel pilihan "-threads".
  • Dhukungan tambahan kanggo autocompletion input subcommands, path, link lan argumen liyane saka perintah "git worktree", sing ngidini sampeyan nggarap sawetara salinan repositori.
  • Dhukungan tambahan kanggo werna padhang sing duwe urutan uwal ANSI. Contone, ing setelan kanggo werna sorot "git config -color" utawa "git diff -color-moved" sampeyan bisa nemtokake "% C (brightblue)" liwat pilihan "--format" kanggo biru padhang.
  • Nambahake versi skrip anyar fsmonitor-penjaga, nyedhiyakake integrasi karo mekanisme kasebut Facebook Watchman kanggo nyepetake nelusuri owah-owahan file lan tampilan file anyar. Sawise nganyari git dibutuhake ngganti pancing ing repositori.
  • Optimizations ditambahaké kanggo nyepetake klone parsial nalika nggunakake bitmaps
    (mesin bitmap) kanggo ngindhari telusuran lengkap kabeh obyek nalika nyaring output. Priksa gumpalan (—filter=blob:none lan —filter=blob:limit=n) sajrone kloning parsial saiki ditindakake
    Ngartekno luwih cepet. GitHub ngumumake patch karo optimasi iki lan dhukungan eksperimen kanggo kloning parsial.

  • Printah "git rebase" wis dipindhah menyang backend sing beda, nggunakake mekanisme 'gabung' standar (sadurunge digunakake kanggo "rebase -i") tinimbang 'patch+apply'. Backends beda-beda ing sawetara cara cilik, contone, sawise nerusake operasi sawise ngrampungake konflik (git rebase --continue), backend anyar nawakake kanggo ngowahi pesen commit, dene sing lawas mung nggunakake pesen lawas. Kanggo bali menyang prilaku lawas, sampeyan bisa nggunakake pilihan "--apply" utawa nyetel variabel konfigurasi 'rebase.backend' kanggo 'apply'.
  • Conto handler kanggo paramèter otentikasi kasebut liwat .netrc wis suda kanggo wangun cocok kanggo nggunakake metu saka kothak.
  • Nambahake setelan gpg.minTrustLevel kanggo nyetel tingkat kepercayaan minimal kanggo macem-macem unsur sing nindakake verifikasi teken digital.
  • Nambahake opsi "--pathspec-from-file" menyang "git rm" lan "git stash".
  • Dandan suite tes terus kanggo nyiapake transisi menyang algoritma hashing SHA-2 tinimbang SHA-1.

Source: opennet.ru

Add a comment