Apa yang dilakukan tool ini
Membandingkan dua potongan teks dan menampilkan perbedaan baik secara side-by-side atau sebagai diff unified. Toggle opsional mengabaikan whitespace di awal/akhir dan mengabaikan case. Diff dihitung pada baris (bukan karakter), yang adalah apa yang kamu inginkan untuk kode, config, dan prosa.
Kapan menggunakannya
- Mengetahui apa yang berubah antara dua respons API.
- Meninjau edit ke file config saat kamu tidak memiliki versi di git.
- Membandingkan dua pesan error untuk menemukan satu kata yang berbeda.
- Sanity-check bahwa round-trip copy-paste tidak menyisipkan karakter tak terlihat.
Cara kerjanya
Algoritma adalah perhitungan longest common subsequence (LCS), yang merupakan pendekatan yang sama dengan yang digunakan git diff. Kompleksitas kira-kira O(n × m) dalam jumlah baris, jadi kami membatasi input pada 2.500 baris per sisi untuk menjaga performa tetap dapat diprediksi. Baris yang cocok dipasangkan; baris yang hanya ada di satu sisi ditandai sebagai penambahan atau penghapusan.
Catatan
Mengapa baris-per-baris dan bukan karakter-per-karakter? Karena sebagian besar diff nyata adalah tentang baris. Diff level karakter berisik pada apapun yang lebih panjang dari kalimat. Jika kamu butuh diff karakter sejati, gunakan git diff --word-diff secara lokal.
Apakah abaikan whitespace mengabaikan tab vs spasi? Ya — toggle itu memperlakukan rentetan whitespace apapun sebagai setara dengan yang lain, yang berguna saat satu file diformat ulang tapi konten lainnya sama.
Apa yang terjadi di luar 2.500 baris? Tool menolak untuk me-render dan meminta kamu memangkasnya. LCS adalah quadratic; pada 100k baris kamu akan membekukan tab selama beberapa menit.
Tools terkait
- Formatter JSON — pretty-print dulu, lalu diff
- JSON ↔ YAML — konversi ke bentuk yang stabil sebelum men-diff