bagaimana membuat svn diff hanya menampilkan perubahan baris non-spasi antara dua revisi

95

Saya bisa mendapatkan perbedaan antara dua revisi menggunakan sesuatu seperti

svn diff -r 100:200 > file.diff

Namun yang menjadi masalah adalah banyak baris yang muncul karena adanya perubahan spasi. Adakah cara untuk hanya menulis baris yang benar-benar berubah secara signifikan dan tidak hanya di spasi?

umar
sumber

Jawaban:

95

Kamu bisa memakai

svn diff -r 100:200 -x -b > file.diff

Jika Anda ingin mengabaikan semua spasi:

svn diff -x -w | less

Sumber

jrbjazz.dll
sumber
Apakah itu baru untuk 1.6? SVN tidak pernah menggunakan untuk melakukan itu. Saya harus terus memperbarui :)
Dan McGrath
4
1.5.4 melakukannya. Tapi: --ignore-space-change, bukan --ignore-space-changes
ur.
@Dan McG. Tidak tahu apakah itu baru untuk 1.6, tetapi entri nomor 8 di akatombo.com/en/comments/ignore_whitespace_in_a_subversion_diff menyarankan bahwa itu tersedia sejak 1.4
jrbjazz
1
Karena EOL dapat dianggap spasi juga, penambahan -x --ignore-eol-stylemungkin diperlukan jika gaya EOL berbeda di antara revisi.
nedim
5
Menggunakan svn diff -x -wterkadang juga dapat berguna, karena mengabaikan lebih banyak spasi (alias untuk ignore-semua-spasi)
Kendall
74

Gunakan -x --ignore-space-changeatau -x --ignore-all-space. (Lihat svn -h diff.)

ur.
sumber
21
svn diff -x -w==svn diff -x --ignore-all-space
chrisg86
7

Anda dapat menggunakan perintah diff alternatif menggunakan argumen --diff-cmd untuk svn diff. diff adalah utilitas bagus yang memiliki banyak fitur untuk mengabaikan spasi.

Sebagai contoh:

svn diff --diff-cmd /usr/bin/diff -x "-w"
tschaible
sumber
11
sebenarnya saya menggunakan svn diff --diff-cmd / usr / bin / diff -x "-w" -r 2000: 2100> jj1 dan berhasil. terima kasih
umar
@umar: Ini adalah satu-satunya cara yang tampaknya berhasil bagi saya.
Balapan Ringan di Orbit
7

Perhatikan bahwa akhir baris tidak dianggap spasi dalam skenario ini dan itu harus diabaikan dengan:

svn diff -x --ignore-eol-style [etc...]
zzxyz
sumber