Kapan perbandingan teks cepat sangat berguna
Sebagian besar suntingan tidak terlihat begitu selesai dibuat. Membaca dua versi berdampingan itu lambat dan tidak bisa diandalkan: orang sering melewatkan satu digit harga yang berubah, kata "tidak" yang hilang, atau tanggal yang tertukar.
Diff melakukan pencarian itu untuk Anda. Beberapa situasi umum di mana alat ini benar-benar menghemat waktu:
- Memeriksa apa yang diubah pihak lain dalam kontrak, penawaran, atau syarat dan ketentuan sebelum Anda menandatanganinya.
- Membandingkan dua ekspor dari daftar yang sama (email, SKU, ID) untuk melihat entri mana yang muncul atau hilang.
- Mencari tahu mengapa dua file konfigurasi atau file
.envberperilaku berbeda. - Meninjau artikel atau terjemahan yang sudah disunting terhadap draf aslinya.
Cara kerja perbandingan
Alat ini menggunakan pendekatan longest common subsequence, keluarga algoritma yang sama dengan yang dipakai git diff dan perintah diff klasik di Unix. Alat ini mencari bagian teks sebanyak mungkin yang sama di kedua versi, menganggapnya tidak berubah, lalu menandai sisanya sebagai dihapus dari teks asli atau ditambahkan di versi baru.
Hasilnya dihitung ulang setiap kali Anda mengetik atau menempelkan teks, jadi Anda bisa memperbaiki sesuatu di salah satu kotak dan langsung melihat efeknya. Bagian yang dihapus ditampilkan merah dengan coretan, bagian yang ditambahkan berwarna hijau, dan sisanya berupa teks biasa dengan font monospace sehingga perataan dalam kode dan tabel tetap mudah dibaca.
Penghitung di atas hasil memiliki arti yang sedikit berbeda di setiap mode:
- Pada mode Per baris, yang dihitung adalah baris:
+4 / −2berarti empat baris ditambahkan dan dua dihapus. Baris yang disunting dihitung sekali sebagai dihapus (versi lama) dan sekali sebagai ditambahkan (versi baru). - Pada mode Per kata, yang dihitung adalah fragmen yang berubah, bukan kata satu per satu. Frasa enam kata yang ditulis ulang di satu tempat dihitung sebagai satu penghapusan dan satu penambahan.
Mode per baris dan per kata dalam praktik
Mode per baris memperlakukan setiap baris sebagai satu unit utuh. Inilah model yang tepat untuk apa pun yang barisnya bermakna sendiri: kode sumber, baris CSV, file log, daftar nama, pengaturan YAML atau .ini. Mode ini juga ketat: spasi di akhir baris atau tab sebagai pengganti spasi sudah membuatnya menjadi baris yang berbeda.
Mode per kata memecah teks menjadi kata dan tanda baca, lalu membandingkannya. Mode ini jauh lebih cocok untuk tulisan biasa, di mana satu paragraf penuh sering kali hanya satu baris panjang dan diff per baris hanya akan memberi tahu "paragraf ini berubah". Dengan mode per kata, Anda melihat persis kata mana yang diganti. Mode ini juga lebih toleran: perbedaan yang hanya berupa spasi, misalnya spasi ganda di antara kalimat, sebagian besar diabaikan.
Kebiasaan yang baik adalah memulai dengan mode per baris untuk melihat di mana saja perubahannya, lalu beralih ke mode per kata untuk membaca apa tepatnya yang berubah di dalam baris yang panjang.
Mendapatkan hasil yang bersih dan mudah dibaca
Sebagian besar diff yang membingungkan berasal dari "noise" format, bukan dari suntingan yang sebenarnya. Beberapa hal yang perlu diperiksa sebelum membandingkan:
- Akhir baris dan pemenggalan. Teks yang disalin dari PDF atau email sering mengandung jeda baris keras di tengah kalimat. Jika satu versi dipenggal dan yang lain tidak, mode per baris akan menandai semuanya sebagai berubah. Gunakan mode per kata, atau hapus jeda barisnya terlebih dahulu.
- Huruf besar dan kecil. Perbandingan bersifat case-sensitive, jadi "Invoice" dan "invoice" dianggap berbeda. Jika huruf besar-kecil tidak penting bagi Anda, seragamkan kedua teks dengan ubah huruf besar kecil sebelum menempelkannya.
- Daftar terurut dan tidak terurut. Diff memperhatikan urutan. Jika dua daftar berisi item yang sama dengan urutan berbeda, perpindahan akan ditampilkan sebagai penghapusan dan penambahan. Urutkan kedua daftar dengan cara yang sama terlebih dahulu jika Anda hanya peduli pada isinya.
- JSON dan data minified. Dokumen JSON yang di-minify adalah satu baris yang sangat panjang. Rapikan kedua versi dengan format dan validasi JSON menggunakan indentasi yang sama, lalu bandingkan per baris; setiap kunci akan berada di barisnya sendiri dan perubahan menjadi jelas.
- Tanda kutip dan tanda pisah tipografis. Pengolah kata mengganti
"dengan tanda kutip tipografis dan-dengan en dash. Sekilas tampak sama, tetapi karakternya berbeda dan akan muncul sebagai perubahan.
Ukuran dan privasi
Kedua teks tetap berada di halaman. Tidak ada yang dikirim ke server, jadi membandingkan kontrak yang belum dirilis, kode sumber internal, atau file berisi data pelanggan sama amannya dengan membandingkan dua daftar belanja. Menutup tab akan membuang semuanya.
Kecepatan bergantung pada perangkat Anda dan seberapa berbeda kedua teks tersebut. Beberapa ribu baris dibandingkan secara instan; puluhan ribu baris yang banyak berubah bisa memakan waktu beberapa detik. Jika terasa lambat, bandingkan hanya bagian yang relevan, atau gunakan mode per baris, yang jumlah unit untuk dicocokkannya jauh lebih sedikit daripada mode per kata.