ฉันสามารถรับความแตกต่างระหว่างการแก้ไขสองครั้งโดยใช้สิ่งที่ชอบ
svn diff -r 100:200 > file.diff
แต่ปัญหาคือมีหลายบรรทัดที่แสดงขึ้นเนื่องจากการเปลี่ยนช่องว่าง มีวิธีเขียนเฉพาะเส้นที่เปลี่ยนไปอย่างมีนัยสำคัญไม่ใช่แค่ในช่องว่างหรือไม่?
ฉันสามารถรับความแตกต่างระหว่างการแก้ไขสองครั้งโดยใช้สิ่งที่ชอบ
svn diff -r 100:200 > file.diff
แต่ปัญหาคือมีหลายบรรทัดที่แสดงขึ้นเนื่องจากการเปลี่ยนช่องว่าง มีวิธีเขียนเฉพาะเส้นที่เปลี่ยนไปอย่างมีนัยสำคัญไม่ใช่แค่ในช่องว่างหรือไม่?
คำตอบ:
คุณสามารถใช้ได้
svn diff -r 100:200 -x -b > file.diff
หากคุณต้องการละเว้นช่องว่างทั้งหมด:
svn diff -x -w | less
-x --ignore-eol-style
อาจจำเป็นหากลักษณะ EOL แตกต่างกันระหว่างการแก้ไข
svn diff -x -w
บางครั้งอาจมีประโยชน์เช่นกันเนื่องจากไม่สนใจช่องว่างที่มากขึ้น (นามแฝงสำหรับการละเว้นทุกช่องว่าง)
ใช้-x --ignore-space-change
หรือ-x --ignore-all-space
. (ดูsvn -h diff
.)
svn diff -x -w
==svn diff -x --ignore-all-space
คุณสามารถใช้คำสั่ง diff ทางเลือกโดยใช้อาร์กิวเมนต์ --diff-cmd สำหรับ svn diff diff เป็นยูทิลิตี้ที่ดีที่มีคุณสมบัติมากมายสำหรับการละเว้นช่องว่าง
ตัวอย่างเช่น:
svn diff --diff-cmd /usr/bin/diff -x "-w"
โปรดทราบว่าจุดสิ้นสุดของบรรทัดไม่ถือเป็นช่องว่างในสถานการณ์นี้และจะต้องถูกละเว้นด้วย:
svn diff -x --ignore-eol-style [etc...]