จะรับ url ของ svn repo ปัจจุบันได้อย่างไร?


83

ฉันมีการเช็คเอาท์ 2 รายการที่มีคนติดตั้งไว้สำหรับฉัน ตอนนี้ฉันต้องตรวจสอบไฟล์เดียวกันนี้ในคอมพิวเตอร์เครื่องอื่น แต่เนื่องจากฉันไม่ได้ตรวจสอบพวกเขาครั้งแรกฉันไม่ทราบว่า URL ที่จะใช้เมื่อใช้คำสั่ง svn checkout:

svn co WHAT_GOES_HERE?

เนื่องจากการชำระเงิน 2 รายการนี้มีอยู่แล้วในเซิร์ฟเวอร์ของฉันจึงมีวิธีรับ ur ของ repo ที่พวกเขาเช็คเอาท์ตั้งแต่แรกหรือไม่

คำตอบ:


131

คุณสามารถรับ URL ของไดเร็กทอรีที่คุณอยู่รวมถึง Repository Root และข้อมูลอื่น ๆ โดยการรันคำสั่งต่อไปนี้ในไดเร็กทอรีที่เช็กเอาต์ใด ๆ :

svn info

หากคุณต้องการคำสั่งที่ส่งคืนเฉพาะ URL ของที่เก็บบางทีสำหรับใช้ในสคริปต์คุณสามารถส่งพารามิเตอร์ต่อไปนี้:

svn info --show-item repos-root-url 

มันเป็นที่น่าสังเกตว่า--show-item มีอยู่ในการโค่นล้ม 1.9+ ในรุ่นเก่าคุณสามารถใช้ตัวอย่างต่อไปนี้เพื่อให้ได้ผลลัพธ์ที่คล้ายกัน:

svn info | grep 'Repository Root' | awk '{print $NF}'

5
สิ่งเดียวกันสำหรับ windows: svn info | findstr / C: "Repository Root:"
s3v1

ในการรับพา ธ สัมพัทธ์สำหรับที่เก็บ (มีประโยชน์นอกเหนือจากรูท URL): svn info --show-item relative-url
Elijah Lofgren

12

สำหรับ SVN 1.7 ฉันต้องใช้

svn info | grep '^URL' | awk '{print $NF}'

ฉันหวังว่านี่จะช่วยคนอื่นที่มาที่นี่ด้วย SVN รุ่นใหม่


คำตอบที่ยอมรับยังคงใช้งานsvn, version 1.7.9 (r1462340) compiled Apr 13 2013, 14:22:38ได้
dash17291

4
@ dash17291 มัน "ใช้งานได้" ในขณะที่พิมพ์บางอย่างออกมา แต่ไม่ใช่ข้อมูลที่ถูกต้อง ส่งคืนราก repo ซึ่งไม่ใช่สิ่งที่ผู้ถามต้องการ รูทไม่ใช่ repo url (อย่างน้อยก็ไม่ใช่ปกติ) ด้วยคำตอบข้างต้นคุณจะได้รับrepourl.com/root vs mine ซึ่งคุณจะได้รับrepourl.com/root/branch/branch_nameหรืออะไรก็ตามที่คุณเช็คเอาต์
JoshStrange

สิ่งนี้ยังตรงกับ "URL สัมพัทธ์" โดยใช้ svn 1.8.10 grep ควรเปลี่ยนเป็นgrep "^URL"
Burhan Ali

3

ไม่จำเป็นต้อง grep เพียงใช้ AWK สำหรับการค้นหาและกำหนดสตริง
svn info | awk '/^URL/{print $2}'

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