๐Ÿ”งToolify

Alat Perbandingan Teks (perbandingan per baris, berkode warna)

Tempel versi asli dan yang direvisi untuk melihat perbedaan per baris secara berdampingan. Berguna untuk dokumen, konfigurasi, tinjauan kode, dan pengeditan prosa.

Tempel kedua versi untuk melihat perbedaan.

Cara kerjanya

Cara perbedaan dihitung

Kami menggunakan algoritma Longest Common Subsequence (LCS) untuk menemukan baris mana yang dibagi antara dua versi. Baris yang muncul di keduanya adalah 'tidak berubah'. Baris hanya di asli adalah 'dihapus'. Baris hanya di versi yang direvisi adalah 'ditambahkan'. Hasilnya adalah perbandingan beranotasi yang jelas dengan nomor baris dipertahankan di kedua sisi.

LCS adalah pendekatan standar yang digunakan oleh git dan sebagian besar alat diff. Ini memilih urutan pencocokan terpanjang yang mungkin, yang biasanya cocok dengan apa yang disebut manusia sebagai 'paragraf yang sama'. Untuk input yang sangat besar (10.000+ baris) runtime tumbuh kuadratik; jika perlu membandingkan log besar, gunakan alat diff streaming.

Untuk apa ini cocok

Revisi dokumen: lihat dengan tepat apa yang berubah antara draf. Berguna untuk kontrak hukum, syarat layanan, dan teks apapun di mana 'apa yang berubah?' penting.

File konfigurasi: bandingkan dua file .env atau YAML untuk menemukan konfigurasi yang salah. Atau dua versi skrip deploy.

Pengeditan prosa: penulis dapat melihat revisi editor dalam konteks, terutama ketika hanya beberapa baris yang berubah.

Tinjauan kode (penggunaan ringan): untuk cuplikan kecil. Untuk tinjauan kode nyata, gunakan alat yang memahami sintaks โ€” git diff dengan flag semantik atau alat tinjauan khusus akan memberikan hasil lebih baik.

Keterbatasan

Kami membedakan pada granularitas baris. Jika Anda mengubah 'cat' menjadi 'cats' di sebuah baris, seluruh baris ditampilkan sebagai dihapus-dan-ditambahkan; kami tidak menyorot 's' yang disisipkan. Diff tingkat kata dan karakter berguna untuk itu, tetapi lebih sulit dibaca pada baris panjang.

Spasi di akhir baris signifikan โ€” 'foo' dan 'foo ' (spasi di akhir) dihitung sebagai baris berbeda. Jika ingin perbandingan yang tidak sensitif spasi, normalkan teks sebelum menempel.

Urutan penting. Dua paragraf di posisi berbeda dihitung sebagai keduanya dihapus dan ditambahkan. Diff tidak mencoba mendeteksi blok yang 'dipindahkan'.

Pertanyaan umum

โ€บApakah ini mendukung diff tingkat kata?

Belum โ€” hanya tingkat baris. Kami mungkin menambahkan granularitas karakter atau kata nanti untuk perbandingan pendek.

โ€บSeberapa besar teks saya bisa?

Secara praktis hingga beberapa ribu baris per sisi. Kompleksitas kuadratik berarti input yang sangat besar mungkin membekukan tab browser sebentar.

โ€บApakah data meninggalkan browser saya?

Tidak. Proses diff berjalan sepenuhnya secara lokal.

โ€บApakah spasi di akhir baris signifikan?

Ya. Dua baris yang berbeda hanya oleh spasi di akhir dihitung sebagai berbeda. Normalkan spasi sebelum menempel jika Anda menginginkan pencocokan yang tidak sensitif spasi.

โ€บBisakah saya menyimpan diff?

Tidak sebagai file yang disimpan. Salin-tempel teks yang dirender atau ambil tangkapan layar untuk saat ini.

โ€บApakah ini algoritma yang sama dengan git diff?

Secara konseptual ya โ€” kami menggunakan LCS, yang merupakan salah satu opsi git. Git default ke algoritma yang serupa tetapi lebih canggih (Myers diff dengan Patience sebagai pilihan). Output untuk input pendek pada dasarnya identik.

โ€บMengapa seluruh baris ditandai ketika hanya satu kata yang berubah?

Karena kami bekerja pada granularitas baris. Diff tingkat karakter akan menyorot kata yang berubah, tetapi lebih sulit dibaca pada baris panjang.

โ€บBisakah saya membandingkan lebih dari dua versi?

Tidak dalam alat ini. Untuk penggabungan multi-arah, gunakan alat diff 3 arah yang khusus.

Alat terkait

Terakhir diperbarui:

Coba prompt AI kami โ†’