Keluaran kawalan sumber Git 2.36

Selepas tiga bulan pembangunan, sistem kawalan sumber yang diedarkan Git 2.36 telah dikeluarkan. 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, 717 perubahan telah diterima pakai ke dalam versi baharu, disediakan dengan penyertaan 96 pembangun, di mana 26 daripadanya mengambil bahagian dalam pembangunan buat kali pertama. Inovasi utama:

  • Arahan "git log" dan "git show" kini mempunyai pilihan "β€”remerge-diff" yang membolehkan anda menunjukkan perbezaan antara hasil keseluruhan gabungan dan data sebenar yang ditunjukkan dalam komit selepas memproses arahan "merge" , yang membolehkan anda menilai dengan jelas perubahan yang dibuat sebagai hasil menyelesaikan konflik penggabungan. Perintah "git show" biasa mengindenkan resolusi konflik yang berbeza, menjadikan perubahan sukar difahami. Sebagai contoh, dalam tangkapan skrin di bawah baris "+/-" tanpa lekukan menunjukkan penyelesaian terakhir konflik yang dikaitkan dengan penamaan semula sha1 kepada oid dalam ulasan di cawangan pertama dan "+/-" dengan lekukan menunjukkan awalan penyelesaian konflik yang disebabkan oleh kemunculan hujah tambahan dalam cabang kedua dalam fungsi dwim_ref().
    Keluaran kawalan sumber Git 2.36

    Apabila menggunakan pilihan "--remerge-diff", perbezaan antara resolusi konflik tidak dipisahkan untuk setiap cawangan induk, tetapi perbezaan keseluruhan antara fail yang telah menggabungkan konflik dan fail yang menyelesaikan konflik ditunjukkan.

    Keluaran kawalan sumber Git 2.36

  • Peningkatan fleksibiliti dalam mengkonfigurasi tingkah laku untuk membuang cache cakera melalui panggilan ke fungsi fsync(). Parameter core.fsyncObjectFiles yang tersedia sebelum ini telah dibahagikan kepada dua pembolehubah konfigurasi core.fsync dan core.fsyncMethod, memberikan keupayaan untuk menggunakan fsync bukan sahaja pada fail objek (.git/objects), tetapi juga kepada struktur git lain seperti pautan ( .git /refs), reflog dan pek fail.

    Menggunakan pembolehubah core.fsync, anda boleh menentukan senarai struktur Git dalaman yang mana fsync juga akan dipanggil selepas operasi tulis. Pembolehubah core.fsyncMethod membolehkan anda memilih kaedah untuk mengepam cache, contohnya, anda boleh memilih fsync untuk menggunakan panggilan sistem dengan nama yang sama, atau menentukan penghapusan-sahaja untuk menggunakan tulis balik cache halaman.

  • Untuk melindungi daripada kelemahan yang memanipulasi penggantian direktori .git pengguna lain ke bahagian kongsi, pengesahan pemilik repositori telah diperkukuh. Melaksanakan sebarang arahan git kini hanya dibenarkan dalam direktori ".git" mereka sendiri. Jika direktori dengan repositori milik pengguna lain, maka ralat akan dipaparkan secara lalai. Tingkah laku ini boleh dilumpuhkan menggunakan tetapan safe.directory.
  • Perintah "git cat-file", bertujuan untuk mengeluarkan kandungan sumber objek Git, telah ditambah dengan pilihan "--batch-command", yang melengkapkan "--batch" dan "--batch-check" yang tersedia sebelum ini perintah ” dengan keupayaan untuk menyesuaikan jenis output menggunakan β€œ kandungan <objek>" untuk memaparkan kandungan atau "maklumat <objek>" untuk memaparkan maklumat tentang objek. Selain itu, arahan "flush" disokong untuk mengepam penimbal keluaran.
  • Pada arahan "git ls-tree", bertujuan untuk menjana senarai kandungan pokok objek, pilihan "β€”oid-only" (β€œβ€”object-only”) telah ditambahkan, serupa dengan β€œβ€”name-only” ”, memaparkan hanya pengecam objek untuk memudahkan panggilan daripada skrip. Juga dilaksanakan ialah pilihan "--format", yang membolehkan anda menentukan format output anda sendiri dengan menggabungkan maklumat mengenai mod, jenis, nama dan saiz.
  • Perintah "git bisect run" melaksanakan pengesanan untuk tidak menetapkan bendera fail boleh laku untuk skrip dan dalam kes ini memaparkan ralat dengan kod 126 atau 127 (sebelum ini, jika skrip tidak dapat dijalankan, semua semakan telah ditandakan sebagai menghadapi masalah) .
  • Menambahkan pilihan --refetch pada arahan "git fetch" untuk mengambil semua objek tanpa memberitahu pihak lain tentang kandungan yang sudah ada pada sistem setempat. Tingkah laku ini boleh berguna untuk memulihkan daripada kegagalan apabila integriti data tempatan tidak pasti.
  • Perintah "git update-index", "git checkout-index", "git read-tree" dan "git clean" kini menyokong indeks separa (indeks jarang) untuk meningkatkan prestasi dan menjimatkan ruang dalam repositori tempat operasi separa dilakukan. pengklonan (jarang-keluar).
  • Tingkah laku perintah β€œgit clone β€”filter=… β€”recurse-submodules” telah diubah, yang kini membawa kepada pengklonan separa submodul (sebelum ini, semasa melaksanakan arahan tersebut, penapis hanya digunakan pada kandungan utama, dan submodul telah diklon sepenuhnya tanpa mengambil kira penapis).
  • Perintah "git bundle" telah menambah sokongan untuk menentukan penapis untuk meletakkan kandungan secara selektif, serupa dengan operasi pengklonan separa.
  • Menambahkan pilihan "--recurse-submodules" pada arahan "git branch" untuk melintasi submodul secara rekursif.
  • Userdiff menawarkan pengendali baharu untuk bahasa Kotlin.

Sumber: opennet.ru

Tambah komen