ฉันจะแสดงความแตกต่างระหว่างการแก้ไขเฉพาะสองรายการในการโค่นล้มได้อย่างไร


120

ฉันใช้ Subversion ผ่านอินเทอร์เฟซบรรทัดคำสั่ง Linux

ฉันต้องการเห็นความแตกต่างระหว่างการแก้ไข 11390 และ 8979 ของไฟล์เฉพาะที่เรียกว่าfSupplierModel.phpในเทอร์มินัลของฉัน ฉันจะทำเช่นนั้นได้อย่างไร?


เพิ่มนี่คือวิธีใช้กลับ: stackoverflow.com/questions/10333712/…
Vadzim

คำตอบ:


171

ดูsvn diffในคู่มือ:

svn diff -r 8979:11390 http://svn.collab.net/repos/svn/trunk/fSupplierModel.php

3
หากคุณต้องการผลลัพธ์ที่สวยงามให้ติดตั้งcolordiffและเพิ่ม "| colordiff` ไปยังส่วนท้ายของคำสั่งด้านบนเพื่อไพพ์ทุกอย่างผ่านมัน
William Turrell

56

ในการเปรียบเทียบการแก้ไขทั้งหมดทำได้ง่ายๆ:

svn diff -r 8979:11390


หากคุณต้องการเปรียบเทียบสถานะการคอมมิตล่าสุดกับไฟล์งานที่บันทึกไว้ในปัจจุบันคุณสามารถใช้คีย์เวิร์ดเพื่อความสะดวก:

svn diff -r PREV:HEAD

(หมายเหตุหลังจากนั้นไม่มีการระบุสิ่งใดไฟล์ทั้งหมดในการแก้ไขที่ระบุจะถูกเปรียบเทียบ)


คุณสามารถเปรียบเทียบไฟล์เฉพาะได้หากคุณเพิ่มเส้นทางไฟล์ในภายหลัง:

svn diff -r 8979:HEAD /path/to/my/file.php


2
การวาง HEAD: ก่อนหน้านี้ดูเหมือนว่าฉันจะมีความหมายมากกว่านี้ในผลลัพธ์ที่แตกต่างอาจจะช่วยคนอื่นได้
Fonix

@Fonix คุณอยู่ในกระบวนทัศน์ของ "การกระทำอื่นแตกต่างจากสถานะปัจจุบันของฉันอย่างไร"? ถ้าเป็นเช่นนั้นฉันเห็นด้วย ฉันมักจะนึกถึงการเปลี่ยนแปลงตามลำดับเวลาดังนั้นการเปลี่ยนแปลงที่เกิดขึ้นใน HEAD จะเป็นการเปลี่ยนแปลงใหม่ / เพิ่มจาก PREV ซึ่งเป็นกระบวนทัศน์ที่ฉันมักจะนึกถึงมีกรณีและข้อโต้แย้งที่ต้องทำสำหรับกระบวนทัศน์ทั้งสองแบบ
ahnbizcad
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.