Temukan direktori, file, dan pohon yang diduplikasi dan tumpang tindih dalam sistem file.
Tambahkan baris ini ke Gemfile aplikasi Anda:
gem 'dupless'
Dan kemudian jalankan:
$ bundle
Atau instal sendiri sebagai:
$ gem install dupless
Ada dua aplikasi, dengan implementasi berbeda.
Ini menemukan file dan direktori duplikat yang setidaknya sebagian cocok dengan file di direktori lain.
Perbandingan file didasarkan pada konten file, bukan nama file, jadi seperti diff
.
Ini menggunakan caching untuk menghindari pembacaan file berulang kali.
Ketika sepasang (atau lebih) file cocok dari dua direktori, maka direktori tersebut dibandingkan, dan mungkin merupakan salah satu dari jenis berikut:
Identik: setiap file di kedua direktori memiliki kecocokan di direktori lainnya.
Berisi: setiap file dalam satu direktori memiliki file di direktori lain, yaitu direktori pertama adalah superset dari direktori kedua.
Ketidakcocokan: dua direktori memiliki file yang sama, yaitu perpotongan setidaknya satu elemen.
Ini menemukan hierarki file dan direktori yang diduplikasi, berdasarkan nama saja (bukan pada konten file, berbeda dengan dupless
).
Dua direktori dikatakan sama (identik) jika semua direktori dan file dalam setiap direktori memiliki kecocokan pada direktori kedua.
Ini tidak menggunakan cache.
Superset ("berisi") dan persimpangan ("ketidakcocokan") tidak dihitung.
Setelah memeriksa repo, jalankan bin/setup
untuk menginstal dependensi. Kemudian, jalankan rake test
untuk menjalankan pengujian. Anda juga dapat menjalankan bin/console
untuk perintah interaktif yang memungkinkan Anda bereksperimen.
Untuk memasang permata ini ke mesin lokal Anda, jalankan bundle exec rake install
. Untuk merilis versi baru, perbarui nomor versi di version.rb
, lalu jalankan bundle exec rake release
, yang akan membuat tag git untuk versi tersebut, dorong git commit dan tag, dan dorong file .gem
ke rubygems.org.
Laporan bug dan permintaan penarikan diterima di GitHub di https://github.com/jpace/dupless.
Permata ini tersedia sebagai sumber terbuka berdasarkan ketentuan Lisensi MIT.