Ngaleupaskeun sistem kontrol sumber disebarkeun Git 2.26

Aya sékrési sistem kontrol sumber disebarkeun git 2.26.0. Git mangrupikeun salah sahiji sistem kontrol versi anu pang populerna, dipercaya sareng berprestasi tinggi, nyayogikeun alat pangembangan non-linier anu fleksibel dumasar kana cabang sareng ngahiji. Pikeun mastikeun integritas sajarah sareng résistansi kana parobahan retroaktif, hashing implisit tina sakabéh sajarah saméméhna dianggo dina unggal komitmen; ogé mungkin pikeun ngajamin tag individu sareng komitmen sareng tanda tangan digital para pamekar.

Dibandingkeun sareng sékrési sateuacana, versi énggal kalebet 504 parobihan, disiapkeun sareng partisipasi 64 pamekar, dimana 12 mimitina nyandak bagian dina pangwangunan. utama inovasi:

  • standar geus dialihkeun ka versi kadua Protokol komunikasi Git, anu dianggo nalika klien jarak jauh nyambung ka server Git. Versi kadua protokol kasohor pikeun nyayogikeun kamampuan pikeun nyaring cabang sareng tag dina sisi server, ngabalikeun daptar tautan anu disingget ka klien. Saméméhna, sagala paréntah tarikan bakal salawasna ngirimkeun ka klien daptar lengkep rujukan dina sakabéh gudang, sanajan klien ngan ngamutahirkeun hiji cabang atawa pariksa yen salinan maranéhanana gudang éta up to date. Inovasi kasohor sanésna nyaéta kamampuan pikeun nambihan kamampuan énggal kana protokol nalika fungsionalitas énggal sayogi dina toolkit. Kodeu klien tetep cocog jeung protokol heubeul tur bisa neruskeun gawé bareng duanana server anyar jeung heubeul, otomatis ragrag deui ka versi munggaran lamun server teu ngarojong kadua.
  • Pilihan "-show-scope" geus ditambahkeun kana paréntah "git config", sahingga leuwih gampang pikeun ngaidentipikasi tempat dimana setélan tangtu ditetepkeun. Git ngidinan Anjeun pikeun nangtukeun setélan dina tempat béda: dina gudang (.git/info/config), dina diréktori pamaké (~/.gitconfig), dina file konfigurasi sistem-lega (/etc/gitconfig), sarta ngaliwatan paréntah. pilihan garis tur variabel lingkungan. Nalika ngaéksekusi "git config" rada hese ngartos dimana persisna setélan anu dipikahoyong ditetepkeun. Pikeun ngabéréskeun masalah ieu, pilihan "--show-origin" sayogi, tapi éta ngan ukur nunjukkeun jalur ka file anu netepkeun setélanna, anu kapaké upami anjeun badé ngédit file, tapi henteu ngabantosan upami anjeun kudu ngarobah nilai ngaliwatan "git config" ngagunakeun pilihan "--system", "--global" atawa "-local". Pilihan anyar "--show-scope" nampilkeun konteks definisi variabel sareng tiasa dianggo babarengan sareng -show-origin:

    $ git --list --show-scope --show-origin
    file global:/home/user/.gitconfig diff.interhunkcontext=1
    file global:/home/user/.gitconfig push.default=current
    […] file lokal:.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

  • Dina setélan mengikat credentials Pamakéan masker dina URL diidinan. Sagala setélan HTTP na Kapercayaan di Git bisa diatur duanana pikeun sakabéh sambungan (http.extraHeader, credential.helper) jeung sambungan basis URL (credential.https://example.com.helper, credential.https: //example. com.pembantu). Dugi ka ayeuna, wildcard sapertos *.example.com ngan ukur diidinan pikeun setélan HTTP, tapi henteu dirojong pikeun ngariung credential. Dina Git 2.26, bédana ieu dileungitkeun sareng, contona, pikeun meungkeut nami pangguna ka sadaya subdomain anjeun ayeuna tiasa netepkeun:

    [kredénsial "https://*.example.com"]

    ngaran pamaké = ttaylorr

  • Perluasan pangrojong ékspérimén pikeun kloning parsial (klon parsial) diteruskeun, ngamungkinkeun anjeun ngan ukur mindahkeun bagian tina data sareng damel sareng salinan gudang anu teu lengkep. Pelepasan énggal nambihkeun paréntah énggal "git sparse-checkout add", anu ngamungkinkeun anjeun nambihan diréktori individu pikeun nerapkeun operasi "checkout" ngan ukur bagian tina tangkal kerja, tinimbang daptar sadaya diréktori sapertos sakaligus ngalangkungan paréntah "git sparse-checkout set" (anjeun tiasa nambihkeun hiji-hiji diréktori, tanpa netepkeun deui sadayana daptar unggal waktos).
    Contona, pikeun clone gudang git / git tanpa committing blobs, ngawatesan Checkout ngan diréktori akar salinan gawé, sarta misah nyirian checkout pikeun "t" jeung "Dokuméntasi" directories, Anjeun bisa nangtukeun:

    $ git clone --filter = blob: euweuh --sparse [email dijaga]:git/git.git

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

    $ git sparse-checkout nambahkeun t
    ....
    $ git sparse-checkout nambahkeun Dokuméntasi
    ....
    $ git daptar jarang-checkout
    dokuméntasi
    t

  • Kinerja paréntah "git grep", anu dianggo pikeun milarian boh eusi repositori ayeuna sareng révisi sajarah, parantos ningkat sacara signifikan. Pikeun nyepetkeun panéangan, éta mungkin pikeun nyeken eusi tangkal anu dianggo nganggo sababaraha utas ("git grep -threads"), tapi pamilarian dina révisi sajarah nyaéta single-threaded. Ayeuna watesan ieu geus dihapus ku nerapkeun kamampuhan pikeun parallelize operasi bacaan ti gudang obyék. Sacara standar, jumlah threads diatur sarua jeung jumlah cores CPU, nu di hal nu ilahar ayeuna teu merlukeun eksplisit netepkeun pilihan "-threads".
  • Ditambahkeun dukungan pikeun autocompletion input subcommands, jalur, tautan sareng alesan sanésna paréntah "git worktree", anu ngamungkinkeun anjeun damel sareng sababaraha salinan repositori.
  • Ditambahkeun dukungan pikeun warna-warna cerah anu ngagaduhan urutan ngewa ANSI. Contona, dina setélan pikeun warna sorot "git config -color" atawa "git diff -color-moved" anjeun bisa nangtukeun "% C (brightblue)" ngaliwatan pilihan "--format" pikeun biru caang.
  • Ditambahkeun versi anyar naskah fsmonitor-pangawas, nyadiakeun integrasi jeung mékanisme nu Facebook Watchman pikeun nyepetkeun nyukcruk parobahan file sareng penampilan file anyar. Saatos ngapdet git diperyogikeun ngagentos hook dina gudang.
  • Ditambahkeun optimasi pikeun nyepetkeun klon parsial nalika nganggo bitmap
    (mesin bitmap) pikeun ngahindarkeun milarian lengkep sadaya objék nalika nyaring kaluaran. Mariksa gumpalan (—filter=blob:none and —filter=blob:limit=n) salami kloning parsial ayeuna dilaksanakeun
    nyata leuwih gancang. GitHub ngumumkeun patch sareng optimasi ieu sareng dukungan ékspérimén pikeun kloning parsial.

  • Paréntah "git rebase" geus dipindahkeun ka backend béda anu ngagunakeun mékanisme standar 'ngahiji' (samemehna dipaké pikeun "rebase -i") tinimbang 'patch + nerapkeun'. Backends béda dina sababaraha cara leutik, contona, sanggeus neraskeun hiji operasi sanggeus ngarengsekeun konflik a (git rebase --continue), backend anyar nawarkeun pikeun ngédit pesen commit, sedengkeun nu heubeul ngan ngagunakeun pesen heubeul. Pikeun balik deui ka kabiasaan heubeul, anjeun tiasa nganggo pilihan "--apply" atawa nyetel variabel konfigurasi 'rebase.backend' ka 'apply'.
  • Conto pawang pikeun parameter auténtikasi dieusian via .netrc geus diréduksi jadi formulir cocog pikeun pamakéan out of the box.
  • Ditambahkeun setelan gpg.minTrustLevel pikeun nyetél tingkat kapercayaan minimum pikeun sagala rupa elemen anu ngalakukeun verifikasi tanda tangan digital.
  • Ditambahkeun pilihan "--pathspec-from-file" kana "git rm" sareng "git stash".
  • Perbaikan suite test dituluykeun dina persiapan transisi ka algoritma hashing SHA-2 tinimbang SHA-1.

sumber: opennet.ru

Tambahkeun komentar