Keluaran sistem kawalan sumber teragih Git 2.25

Ada pelepasan sistem kawalan sumber teragih Git 2.25.0. Git ialah salah satu sistem kawalan versi yang paling popular, boleh dipercayai dan berprestasi tinggi, menyediakan alat pembangunan bukan linear yang fleksibel berdasarkan percabangan dan penggabungan. Untuk memastikan integriti sejarah dan penentangan terhadap perubahan retroaktif, pencincangan tersirat bagi keseluruhan sejarah terdahulu digunakan dalam setiap komit; ia juga mungkin untuk memperakui teg individu dan komit dengan tandatangan digital pembangun.

Berbanding dengan keluaran sebelumnya, versi baharu itu termasuk 583 perubahan, disediakan dengan penyertaan 84 pembangun, di mana 32 daripadanya mengambil bahagian dalam pembangunan buat kali pertama. Utama inovasi:

  • Kemungkinan pengklonan separa menghampiri penstabilan dan kesediaan penuh, membolehkan anda memindahkan hanya sebahagian daripada data dan bekerja dengan salinan repositori yang tidak lengkap. Klon biasa menyalin semua data daripada repositori, termasuk setiap versi setiap fail dalam sejarah perubahan. Untuk repositori yang sangat besar, penyalinan data menghasilkan peningkatan yang ketara dalam trafik dan ruang cakera, walaupun pembangun hanya berminat dengan subset fail. Untuk menjadikannya lebih mudah untuk mendapatkan hanya sebahagian daripada pepohon sumber yang berfungsi, keluaran baharu memperkenalkan perintah "sparse-checkout" percubaan dan pilihan "--sparse" baharu untuk arahan "klon".

    Sebelum ini, proses pengklonan terpilih dilakukan melalui tugas penapis untuk menapis kandungan yang tidak perlu dan pilihan "β€”no-checkout" untuk melumpuhkan pengisian fail yang hilang. Selepas itu, sebelum melakukan operasi daftar keluar, adalah perlu untuk mendayakan tetapan core.sparseCheckout dan mentakrifkan senarai corak laluan yang dikecualikan dalam fail .git/info/sparse-checkout. Sebagai contoh, untuk mengklon tanpa gumpalan dan menghalang fail daripada diekstrak daripada subdirektori kedalaman 2 atau lebih, anda boleh menjalankan:

    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 .

    Arahan "git sparse-checkout" baharu sangat memudahkan kerja dan mengurangkan proses mengatur kerja dengan repositori yang tidak lengkap kepada arahan berikut:

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

    Perintah jarang-daftar keluar membolehkan anda menetapkan senarai laluan untuk daftar keluar (set) tanpa mengkonfigurasi .git/info/sparse-checkout secara manual, serta memaparkan senarai laluan semasa (senarai) dan dayakan atau lumpuhkan pembayaran separa (dayakan /lumpuhkan).

    Untuk mengoptimumkan kerja dengan repositori yang sangat besar dan senarai templat, "git config core.sparseCheckoutCone", yang mengehadkan corak yang dibenarkan (bukannya corak .gitignore sewenang-wenangnya, anda boleh menentukan sama ada semua laluan dan semua fail dalam subdirektori tertentu perlu ditandakan). Sebagai contoh, jika repositori besar mempunyai direktori "A/B/C" dan semua kerja tertumpu dalam subdirektori "C", maka apabila anda mendayakan mod sparseCheckoutCone, arahan "git sparse-checkout set A/B/ C" akan mengekstrak keseluruhan kandungan "C", tetapi daripada "A" dan "B" ia akan mengekstrak hanya bahagian yang diperlukan untuk berfungsi dengan "C".

  • Daripada dokumentasi ("git rebase -h"), semua rujukan kepada pilihan "--preserve-merges" telah dialih keluar, yang telah ditamatkan dan harus digunakan sebaliknya untuk memindahkan satu set komit.git rebase --rebase-merges".
  • Untuk meningkatkan kebolehbacaan mesej dengan tampalan yang dihantar ke senarai mel, pilihan β€œgit format-patch β€”cover-from-description subject” telah ditambah, apabila dinyatakan, perenggan pertama daripada teks penerangan cawangan digunakan sebagai subjek surat iringan untuk satu set tampalan.
  • Sokongan yang dilaksanakan untuk penggunaan gabungan perintah "git apply -3way" dan tetapan "merge.conflictStyle" ("git apply" kini mengambil kira gaya perihalan konflik daripada merge.conflictStyle apabila perlu untuk menyelesaikan konflik selepas mencuba untuk menggunakan fail tampalan pada repositori).
  • Kod definisi fungsi yang digunakan dalam operasi seperti "git diff/grep --show-function/-function-context" telah diperluaskan untuk menyokong penentuan sempadan fungsi dalam program bahasa Elixir.
  • Pilihan baharu telah ditambahkan pada "git add", "git commit", "git reset" dan arahan lain - "-pathspec-from-file", yang memungkinkan untuk memuatkan senarai laluan daripada fail atau aliran input , bukannya menyenaraikannya pada baris arahan.
  • Masalah dengan mengesan nama semula pada peringkat direktori semasa menulis komit telah diselesaikan. Takrifan tidak berfungsi jika kandungan subdirektori dialihkan ke akar repositori.
  • Pelaksanaan awal arahan "git add -i" yang direka bentuk semula telah dicadangkan, membolehkan anda menambah kandungan yang diubah secara interaktif, ditulis semula daripada Perl kepada C. Kerja semula serupa arahan "git add -p" sedang dijalankan.
  • Perintah "git log -graph" telah difaktorkan semula, menghasilkan imej ASCII bagi graf dengan sejarah perubahan dalam repositori. Kerja semula memungkinkan untuk menambah baik dan memudahkan output dengan ketara tanpa memutarbelitkan struktur cerita, yang, sebagai contoh, menyelesaikan masalah dengan gambar yang melampaui lebar garisan terminal.
  • Pilihan "git log --format=.." membolehkan anda menukar format output,
    dilanjutkan dengan sokongan untuk bendera "l/L" untuk memaparkan hanya bahagian alamat e-mel yang ditunjukkan sebelum simbol "@" (contohnya, berguna apabila semua pembangun mempunyai semua e-mel dalam domain yang sama).

  • Menambahkan subperintah "set-url" pada perintah "submodule git".
  • Kit ujian telah dikemas kini sebagai persediaan untuk peralihan ke
    algoritma pencincangan SHA-2 dan bukannya SHA-1.

Sumber: opennet.ru

Tambah komen