Sebagian besar dari pekerjaan sehari-hari saya sedang mengembangkan perangkat lunak untuk digunakan pada mesin dengan versi yang berbeda dari perangkat lunak yang sama, seperti bash
, find
, dan grep
. Ketika menemukan fitur yang akan berguna misalnya untuk menyederhanakan kode, penting untuk mengetahui apakah fitur ini tersedia di alat yang paling lama diinstal. Untuk hal-hal penting, akan berguna juga untuk mengetahui apakah fitur ini baru atau sudah ada selama bertahun-tahun di alat yang dipasang paling lama.
Apa cara cepat untuk menjawab ini secara otoritatif untuk alat-alat Linux, khususnya GNU Core Utils? Beberapa kemungkinan untuk mengurangi akurasi:
- Pencarian biner biner (sic) dengan menjalankan versi yang berbeda tentu saja merupakan jawaban akhir, tetapi sejauh ini yang paling memakan waktu. Instalasi yang lebih lama seringkali tidak tersedia untuk alasan keamanan.
- Membaca kode hampir sama bagusnya, tetapi bisa memakan waktu terlalu lama jika fitur tersebut samar-samar dinamai, namanya tidak berhubungan langsung dengan variabel / fungsi / nama objek, atau itu diterapkan sebelum diaktifkan.
- Ubah log , jika tersedia, biasanya sambungkan perubahan fitur ke versi perangkat lunak.
- Log komit dapat memberikan petunjuk, tetapi tidak tahu versi mana mereka akan dimasukkan.
- halaman manual jarang menyebutkan tanggal.
- Hal yang sama berlaku untuk Googling , dan Anda juga akan kesulitan mengecualikan semua sumber non-otoritatif.
Jawaban:
Secara umum, ada changelog. Bahkan, ini (atau "pemberitahuan penting" tentang perubahan) diperlukan oleh GPL! (Setidaknya, secara efektif untuk apa pun dengan banyak kontributor - lihat GPLv2 bagian 2a.)
Untuk paket GNU coreutils - dan untuk hampir semua yang lainnya dari proyek GNU secara langsung - file ini jelas merupakan tempat pertama untuk dilihat, dan harus menjawab pertanyaan Anda 95% dari waktu.
sumber
ChangeLog.bz2
masuk/usr/share/doc/coreutils-8.10
pada sistem Fedora saya, dan entri teratasnya dari2011-02-04
. Kemungkinan juga bahwa ini adalah garpu RH - Saya akan memeriksanya nanti hari ini.Mengapa tidak menggunakan afferent kontrol sumber ke X untuk mencari fitur Y? Repo sumber adalah cara terbaik untuk mengidentifikasi ketika fitur tertentu diperkenalkan.
Untuk coreutils Anda dapat menuju ke http://git.savannah.gnu.org/cgit/coreutils.git dan mencari kata kunci yang terkait dengan Y dalam pesan log atau baris kode tertentu yang Anda identifikasi milik Y. Anda dapat melakukannya di antarmuka web secara langsung, atau bahkan lebih baik, mengkloning repo sumber ke stasiun Anda dan mencari menggunakan git-membagi , git-menyalahkan dan git-log --grep .
Kemudian Gunakan git-uraikan untuk mengetahui tag adalah yang terdekat dengan commit tertentu. Tag digunakan untuk nomor versi kebanyakan, sehingga akan memberi Anda versi yang memperkenalkan komit.
Anda dapat menyesuaikan metode di atas, tergantung pada X dan kontrol sumbernya.
sumber
Pada Debian dan Debian yang diturunkan platform seperti Ubuntu :
menyediakan changelog GNU Core Utilities 'kembali ke versi
4.5.1-1
.Tidak yakin apakah ada solusi yang sama nyamannya pada platform lain.
sumber
Periksa file NEWS coreutils dari repo gitnya .
sumber