Saya mencari aplikasi yang dapat membandingkan dua sumber C ++ dan menemukan perbedaan yang berarti kode (untuk membandingkan versi yang mungkin telah diformat ulang secara berbeda). Paling tidak, sesuatu yang memiliki kemampuan untuk mengabaikan perubahan dalam ruang putih, ruang tab dan baris baru yang tidak mempengaruhi fungsi sumber (perhatikan bahwa apakah baris baru dianggap sebagai spasi putih tergantung pada bahasa , dan C dan C ++ melakukannya ). Dan, idealnya, sesuatu yang dapat mengidentifikasi dengan tepat semua perbedaan yang bermakna kode. Saya di bawah Ubuntu.
Sebagai per diff --help | grep ignore
, saya diharapkan diff -bBwZ
untuk melakukan pekerjaan dengan wajar (saya berharap untuk mendapatkan beberapa negatif palsu, untuk ditangani nanti). Namun demikian, tidak.
jika saya memiliki file berikut dengan cuplikan
test_diff1.txt
else if (prop == "P1") { return 0; }
dan test_diff2.txt
else if (prop == "P1") {
return 0;
}
kemudian
$ diff -bBwZ test_diff1.txt test_diff2.txt
1c1,3
< else if (prop == "P1") { return 0; }
---
> else if (prop == "P1") {
> return 0;
> }
bukannya hasil kosong.
Menggunakan pemformat kode sebagai "filter" pada kedua input dapat menyaring perbedaan ini, tetapi kemudian output yang dihasilkan harus diikat kembali ke input asli untuk pelaporan akhir perbedaan untuk menjaga teks dan nomor baris yang sebenarnya. Jadi tujuannya dapat dicapai tanpa memerlukan kompiler dengan benar ... Saya tidak tahu apakah ada sesuatu yang tersedia.
Bisakah tujuan tercapai diff
?
Kalau tidak, apakah ada alternatif (lebih disukai, untuk baris perintah)?