Rilis sistem kontrol sumber sing disebarake Git 2.25

Kasedhiya release saka sistem kontrol sumber disebaraké git 2.25.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é, 583 owah-owahan ditampa ing versi anyar, disiapake karo partisipasi 84 pangembang, kang 32 njupuk bagéyan ing pembangunan kanggo pisanan. Utama inovasi:

  • Kemungkinan kloning sebagean nyedhaki stabilisasi lan kesiapan lengkap, ngidini sampeyan nransfer mung bagean data lan nggarap salinan repositori sing ora lengkap. Klon khas nyalin kabeh data saka gudang, kalebu saben versi saben file ing riwayat owah-owahan. Kanggo repositori sing gedhe banget, nyalin data bakal nambah lalu lintas lan ruang disk, sanajan pangembang mung kasengsem ing subset file. Kanggo luwih gampang njupuk mung bagean saka wit sumber sing digunakake, release anyar ngenalake printah "sparse-checkout" eksperimen lan pilihan "--sparse" anyar kanggo printah "klon".

    Sadurunge, proses kloning selektif ditindakake liwat tugas kasebut saringan kanggo nyaring isi sing ora perlu lan pilihan "-no-checkout" kanggo mateni ngisi file sing ilang. Sawisé iku, sadurunge nindakake operasi checkout, iku perlu kanggo ngaktifake setelan core.sparseCheckout lan netepake dhaptar pola path tilar ing file .git/info/sparse-checkout. Contone, kanggo kloning tanpa blobs lan nyegah file saka diekstrak saka subdirektori ambane 2 utawa luwih, sampeyan bisa mbukak:

    git clone --filter=blob:none --no-checkout / your/repository/here repo
    $cd repo
    $ cat >.git/info/sparse-checkout <EOF
    /*
    !/*
    EOF
    $ git config core.sparseCheckout 1
    $ git checkout.

    Printah "git sparse-checkout" anyar banget nyederhanakake karya lan nyuda proses ngatur karya kanthi repositori sing ora lengkap kanggo printah ing ngisor iki:

    git clone --filter=blob:none --sparse / your/repository/here repo
    git sparse-checkout set /path/to/check/out

    Printah sparse-checkout ngidini sampeyan nyetel dhaptar dalan kanggo checkout (set) tanpa konfigurasi manual .git/info/sparse-checkout, uga nampilake dhaptar dalan saiki (dhaftar) lan ngaktifake utawa mateni checkout parsial (aktifake. / mateni).

    Kanggo ngoptimalake karya kanthi repositori lan dhaptar template sing gedhe banget, "git config core.sparseCheckoutCone", sing mbatesi pola sing diidini (tinimbang pola .gitignore sing sewenang-wenang, sampeyan bisa nemtokake manawa kabeh path lan kabeh file ing subdirektori tartamtu kudu dicenthang). Contone, yen gudang gedhe duwe direktori "A / B / C" lan kabeh karya dikonsentrasi ing subdirektori "C", banjur nalika sampeyan ngaktifake mode sparseCheckoutCone, printah "git sparse-checkout set A / B / C" bakal ngekstrak kabeh isi "C", nanging saka "A" lan "B" bakal ngekstrak mung bagean sing dibutuhake kanggo nggarap "C".

  • Saka dokumentasi ("git rebase -h"), kabeh referensi kanggo opsi "--preserve-merges" wis dibusak, sing wis ora digunakake lan kudu digunakake kanggo migrasi sakumpulan commit.git rebase --rebase-merges".
  • Kanggo nambah keterbacaan pesen kanthi patch sing dikirim menyang mailing list, opsi "git format-patch —cover-from-description subject" wis ditambahake, yen wis ditemtokake, paragraf pisanan saka teks deskripsi cabang digunakake minangka subyek saka surat lamaran kanggo set patch.
  • Dhukungan sing dileksanakake kanggo panggunaan gabungan perintah "git apply -3way" lan setelan "merge.conflictStyle" ("git apply" saiki njupuk gaya deskripsi konflik saka merge.conflictStyle yen perlu kanggo ngatasi konflik sawise nyoba. kanggo aplikasi file patch menyang repositori).
  • Kode definisi fungsi sing digunakake ing operasi kayata "git diff/grep --show-function/-function-context" wis ditambahake kanggo ndhukung watesan fungsi ing program basa. Elixir.
  • Opsi anyar wis ditambahake menyang "git add", "git commit", "git reset" lan printah liyane - "-pathspec-from-file", sing ndadekake bisa mbukak dhaptar path saka file utawa stream input. , tinimbang listing ing baris printah.
  • Masalah karo ndeteksi ganti jeneng ing tingkat direktori nalika nulis commit wis ditanggulangi. Dhéfinisi kasebut ora bisa ditindakake yen isi subdirektori dipindhah menyang oyod repositori.
  • Implementasi awal saka printah "git add -i" sing dirancang ulang wis diusulake, ngidini sampeyan nambah konten sing diganti kanthi interaktif, ditulis maneh saka Perl menyang C. A rework padha saka "git add -p" printah lagi ditindakake.
  • Printah "git log -graph" wis refactored, ngasilake gambar ASCII saka grafik kanthi riwayat owah-owahan ing repositori. Rework digawe iku bisa kanggo Ngartekno nambah lan menakake output tanpa distorting struktur crita, kang, contone, ditanggulangi masalah karo gambar ngluwihi jembaré baris terminal.
  • Opsi "git log --format=.." ngidini sampeyan ngganti format output,
    ditambahi karo dhukungan kanggo gendera "l / L" kanggo nampilake mung bagean saka alamat email sing dituduhake sadurunge simbol "@" (contone, migunani nalika kabeh pangembang duwe kabeh email ing domain sing padha).

  • Nambahake subcommand "set-url" menyang printah "git submodule".
  • Test kits wis dianyari ing preparation kanggo transisi kanggo
    algoritma hashing SHA-2 tinimbang SHA-1.

Source: opennet.ru

Add a comment