Rilis kontrol sumber Git 2.36

Setelah tiga bulan pengembangan, rilis sistem kontrol sumber terdistribusi Git 2.36 telah dipublikasikan. Git adalah salah satu sistem kontrol versi yang paling populer, andal, dan berperforma tinggi yang menyediakan alat pengembangan non-linear yang fleksibel berdasarkan percabangan dan penggabungan cabang. Untuk memastikan integritas riwayat dan ketahanan terhadap perubahan retroaktif, hashing implisit dari seluruh riwayat sebelumnya di setiap komit digunakan, juga dimungkinkan untuk memverifikasi tag individual dan komit dengan tanda tangan digital dari pengembang.

Dibandingkan dengan rilis sebelumnya, 717 perubahan diterima ke dalam versi baru, disiapkan dengan partisipasi 96 pengembang, 26 di antaranya mengambil bagian dalam pengembangan untuk pertama kalinya. Inovasi utama:

  • Opsi "-remerge-diff" telah ditambahkan ke perintah "git log" dan "git show", yang memungkinkan Anda menampilkan perbedaan antara hasil keseluruhan penggabungan dan data aktual yang tercermin dalam komit setelah memproses " menggabungkan" perintah, yang memungkinkan Anda untuk mengevaluasi secara visual perubahan yang dibuat sebagai hasil resolusi konflik gabungan. Perintah "git show" yang biasa memisahkan resolusi konflik yang berbeda dengan lekukan, sehingga sulit untuk memahami perubahannya. Misalnya, pada tangkapan layar di bawah, baris "+/-" tanpa lekukan menunjukkan penyelesaian konflik terakhir terkait dengan penggantian nama di cabang pertama sha1 menjadi oid di komentar, dan "+/-" dengan lekukan menunjukkan konflik awal resolusi yang disebabkan oleh munculnya argumen tambahan di cabang kedua dalam fungsi dwim_ref().
    Rilis kontrol sumber Git 2.36

    Saat menggunakan opsi "--remerge-diff", perbedaan antara resolusi konflik tidak dipisahkan untuk setiap cabang induk, tetapi perbedaan keseluruhan antara file yang memiliki konflik gabungan dan file yang konfliknya diselesaikan akan ditampilkan.

    Rilis kontrol sumber Git 2.36

  • Peningkatan fleksibilitas dalam menyesuaikan perilaku pembilasan cache disk melalui pemanggilan fungsi fsync(). Parameter core.fsyncObjectFiles yang tersedia sebelumnya telah dipecah menjadi dua variabel konfigurasi core.fsync dan core.fsyncMethod agar fsync dapat diterapkan tidak hanya ke file objek (.git/objek) tetapi juga ke struktur git lain seperti referensi (.git /refs), reflog dan kemas file.

    Melalui variabel core.fsync, Anda dapat menentukan daftar struktur Git internal, setelah operasi tulis, fsync juga akan dipanggil untuknya. Variabel core.fsyncMethod memungkinkan Anda memilih metode untuk membersihkan cache, misalnya, Anda dapat memilih fsync untuk menggunakan panggilan sistem dengan nama yang sama, atau menentukan hanya-tulis untuk menggunakan writeback tertunda (penulisan pagecache).

  • Untuk melindungi dari kerentanan yang memanipulasi penggantian direktori .git pengguna lain ke dalam partisi bersama, verifikasi pemilik repositori telah diperkuat. Menjalankan perintah git apa pun sekarang hanya diperbolehkan di direktori ".git" mereka sendiri. Jika direktori repositori dimiliki oleh pengguna lain, kesalahan akan terjadi secara default. Perilaku ini dapat dinonaktifkan menggunakan pengaturan safe.directory.
  • Menambahkan opsi --batch-command ke perintah "git cat-file", yang dimaksudkan untuk menampilkan konten asli objek Git, melengkapi perintah "--batch" dan "--batch-check" yang tersedia sebelumnya dengan kemampuan untuk secara adaptif memilih jenis keluaran melalui indikasi "isi <objek>" untuk menampilkan konten, atau "info <objek>" untuk menampilkan informasi tentang objek. Selain itu, perintah "siram" didukung untuk menyiram buffer keluaran.
  • Opsi "-oid-only" ("--object-only") telah ditambahkan ke perintah "git ls-tree", yang dimaksudkan untuk mencantumkan konten pohon objek, yang, dengan analogi dengan "-- hanya nama", hanya menampilkan pengidentifikasi objek untuk menyederhanakan panggilan dari skrip. Opsi "--format" juga telah diterapkan, memungkinkan Anda menentukan format output Anda sendiri dengan menggabungkan informasi mode, jenis, nama, dan ukuran.
  • Dalam perintah "git bisect run", definisi tidak mengatur tanda file yang dapat dieksekusi untuk skrip dan menghasilkan kesalahan dengan kode 126 atau 127 dalam hal ini diterapkan (sebelumnya, jika skrip tidak dapat dijalankan, semua revisi dilakukan ditandai bermasalah).
  • Menambahkan opsi "--refetch" ke perintah "git fetch" untuk mengambil semua objek tanpa memberi tahu sisi lain dari konten yang sudah ada di sistem lokal. Perilaku ini berguna untuk memulihkan status setelah kegagalan saat tidak ada kepastian tentang integritas data lokal.
  • Menambahkan dukungan untuk indeks jarang ke git update-index, git checkout-index, git read-tree, dan perintah git clean untuk meningkatkan kinerja dan menghemat ruang di repositori yang melakukan kloning indeks jarang (sparse-checkout).
  • Perilaku perintah "git clone --filter=... --recurse-submodules" telah diubah, yang sekarang mengarah ke kloning sebagian submodul (sebelumnya, saat menjalankan perintah seperti itu, filter diterapkan hanya ke konten utama , dan submodul dikloning sepenuhnya tanpa memperhitungkan filter).
  • Dukungan untuk menentukan filter untuk penempatan konten secara selektif, mirip dengan operasi klon parsial, telah ditambahkan ke perintah "bundel git".
  • Menambahkan opsi "--recurse-submodules" ke perintah "git branch" untuk melintasi submodul secara rekursif.
  • Userdiff telah mengusulkan penangan baru untuk bahasa Kotlin.

Sumber: opennet.ru

Tambah komentar