ฉันจะดูไฟล์ SVN เวอร์ชั่นเก่ากว่าได้อย่างไร


156

ฉันมีไฟล์ SVN ซึ่งขาดตรรกะบางส่วนดังนั้นฉันจึงต้องย้อนกลับไปประมาณ 40 ครั้งตามเวลาที่มีตรรกะที่ฉันต้องการ นอกเหนือจากการพยายามดูไฟล์ต่าง ๆ ในบรรทัดคำสั่ง ( อ่านยากมาก ) มีวิธีใดบ้างที่ฉันจะได้รับสำเนาของไฟล์นั้นเพื่อตรวจสอบเพื่อให้ฉันสามารถศึกษาเพื่อกู้คืนส่วนต่างๆได้หรือไม่

คำตอบ:


237

คุณสามารถอัปเดตเป็นรุ่นก่อนหน้าได้:

svn update -r 666 file

หรือคุณสามารถดูไฟล์โดยตรง:

svn cat -r 666 file | less

13
svn cat -r 666 file | lessสมบูรณ์แบบดังนั้นฉันสามารถอ่านผ่านเป็นกลุ่ม!
Xeoncross

4
@sillyMunky svn cat | vim -ลอง หากการเน้นไวยากรณ์ของเสียงเรียกเข้าไม่ได้เปิดขึ้นโดยอัตโนมัติให้ทำ:set syntax=java(หรือภาษาใดก็ได้)
John Kugelman

1
ขอบคุณมาก John จริง ๆ แล้วฉันเป็นคนเดเบียนและฉันพบว่ามีแพคเกจเน้นไวยากรณ์เล็ก ๆ น้อย ๆ ที่เรียกว่า 'ซอร์ส - ไฮไลต์' เพื่อให้น้อยลงสามารถรับไฮไลต์ไวยากรณ์โดยอัตโนมัติได้
sillyMunky

2
svn cat -r 666 ไฟล์> file_666.js หากคุณต้องการดูไฟล์ทั้งหมด: p
Parijat Kalia

หรือถ้าคุณใช้ bash vim +set\ ft=<FILETYPE> <( svn cat -r <REV> <FILE> )
h4unt3r

5

นอกจากนี้ยังเป็นที่น่าสนใจในการเปรียบเทียบไฟล์ของการแก้ไขการทำงานปัจจุบันกับไฟล์เดียวกันของการแก้ไขอื่น

คุณสามารถทำได้ดังนี้:

$ svn diff -r34 file


1

ฉันเชื่อว่าวิธีที่ดีที่สุดในการดูการแก้ไขคือการใช้โปรแกรม / แอปที่ทำให้คุณง่ายขึ้น ฉันชอบใช้ trac: http://trac.edgewall.org/wiki/TracSubversion

มันให้เบราว์เซอร์ svn ที่ยอดเยี่ยมและทำให้ง่ายต่อการย้อนกลับผ่านการแก้ไขของคุณ

อาจเป็นเรื่องที่เกินความจำเป็นเล็กน้อยในการตั้งค่านี้สำหรับการแก้ไขเฉพาะที่คุณต้องการตรวจสอบ แต่อาจมีประโยชน์หากคุณกำลังทำสิ่งนี้มากในอนาคต


1

เมื่อใช้Subclipseเวอร์ชันล่าสุดคุณสามารถดูได้โดยไม่ต้องใช้คำสั่ง cmd ในไฟล์เพียงคลิกขวา => ทีม => สลับไปยังสาขา / แท็ก / การแก้ไขอื่น นอกเหนือจากฟิลด์การแก้ไขคุณคลิกเลือกแล้วคุณจะเห็นไฟล์ทุกเวอร์ชัน


1

หากต้องการตอบคำถามโดยตรงถึงวิธี "รับสำเนาของไฟล์นั้น":

svn cat -r 666 file > file_r666

จากนั้นคุณสามารถดูสิ่งที่สร้างขึ้นใหม่file_r666ด้วยโปรแกรมดูหรือโปรแกรมเปรียบเทียบเช่น

kompare file_r666 file

แสดงให้เห็นถึงความแตกต่างอย่างดี

ฉันโพสต์คำตอบเพราะคำสั่งของคำตอบที่ยอมรับนั้นจริง ๆ แล้วไม่ให้สำเนาของไฟล์และเพราะsvn cat -r 666 file | vimไม่สามารถทำงานกับระบบของฉัน ( Vim: Error reading input, exiting...)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.