Setelah tiga bulan pengembangan, sistem kontrol sumber terdistribusi Git 2.44 telah dirilis. Git adalah salah satu sistem kontrol versi yang paling populer, andal, dan berkinerja tinggi, menyediakan alat pengembangan non-linier yang fleksibel berdasarkan percabangan dan penggabungan. Untuk memastikan integritas riwayat dan ketahanan terhadap perubahan retroaktif, hashing implisit dari seluruh riwayat sebelumnya digunakan di setiap penerapan; juga dimungkinkan untuk mengesahkan tag individual dan komitmen dengan tanda tangan digital pengembang. Kode Git didistribusikan di bawah lisensi GPLv2+.
Dibandingkan dengan rilis sebelumnya, versi baru menyertakan 503 perubahan, disiapkan dengan partisipasi 85 pengembang, 34 di antaranya mengambil bagian dalam pengembangan untuk pertama kalinya. Inovasi utama:
- Perintah baru, "git replay," telah ditambahkan, yang dapat digunakan sebagai alternatif untuk "git rebase" dan digunakan untuk membuat ulang riwayat pada server tanpa working tree (repositori kosong yang tidak berisi working tree), mengerjakan beberapa branch sekaligus, melakukan operasi rebase pada branch selain branch yang sedang di-checkout, atau sekadar untuk mempercepat operasi merge.
- Menambahkan dukungan untuk sistem integrasi berkelanjutan GitLab CI.
- Perintah “git add” dan “git stash” sekarang mendukung atribut jalur “:(attr:...)”, yang diatur dengan cara yang mirip dengan perintah “git show”. Misalnya, "git add ':(attr:~binary)'" dapat digunakan untuk menambahkan semua file teks (non-biner) ke indeks. Selain itu, rilis baru ini menawarkan atribut “builtin_objectmode” untuk memfilter jalur file berdasarkan hak akses. Misalnya, "git add ':(attr:builtin_objectmode=100755)'" dapat digunakan untuk menambahkan semua executable.
- Menambahkan dukungan untuk menggunakan kembali objek yang didistribusikan ke beberapa file paket yang memiliki indeks multi-paket dengan data ketersediaan objek (pengoptimalan yang memungkinkan, alih-alih benar-benar mentransfer data, untuk merujuk pada penggunaan data yang sudah ada dalam file paket). Mulai versi 2.44, git kini dapat menangani penggunaan kembali objek di beberapa file paket, tanpa perlu mengemas ulang repositori menjadi satu file paket. Untuk mengaktifkan fitur baru, jalankan perintah berikut: git config —global pack.allowPackReuse multi git multi-pack-index write —bitmap
setelah itu jumlah file paket yang objeknya digunakan kembali dapat dilacak dalam nilai "paket yang digunakan kembali... (dari N)" yang ditunjukkan saat melakukan "git push".
- Perintah "git rebase --autosquash" sekarang dapat digunakan untuk operasi rebase dalam mode non-interaktif, memungkinkan Anda melakukan rebase dan menerapkan perbaikan dengan cepat tanpa memeriksa log perubahan atau mengubah variabel lingkungan GIT_SEQUENCE_EDITOR.
- Menambahkan opsi “--diff-algorithm” ke perintah “git merge-file” untuk memilih algoritma alternatif untuk mengevaluasi perbedaan antar file.
- Dalam perintah “git checkout -B [ ]" tidak mengizinkan pembaruan atau pengambilan cabang yang menggunakan pohon kerja berbeda. Untuk mengembalikan perilaku lama, opsi “-ignore-other-worktrees” telah ditambahkan.
- Menambahkan kemampuan untuk mengatur pengaturan “git config saran.pushAlreadyExists” ke “true”, yang menghapus instruksi untuk menonaktifkannya (“Nonaktifkan pesan ini dengan…”) yang memakan ruang di layar saat menampilkan petunjuk.
- Eksekusi perintah "git for-each-ref" yang dioptimalkan dengan opsi "--no-sort", yang sekarang menghasilkan output dalam urutan yang tidak ditentukan (sebelumnya, menentukan "--no-sort" masih menghasilkan pengurutan berdasarkan abjad) . Setelah melakukan optimasi, penggunaan "--no-sort" sekarang mempercepat "git for-each-ref" sekitar 20% di repositori dengan jumlah referensi yang banyak.
- Dukungan untuk memperbarui token OAuth telah ditambahkan ke backend manajemen kredensial wincred, serupa dengan cara penerapannya di backend credential-cache dan credential-libsecret.
- "git Fetch" telah menambahkan dukungan untuk opsi konfigurasi "fetch.all", yang akan ditangani sama dengan menambahkan opsi "--all" pada baris perintah.
Sumber: opennet.ru
