สันนิษฐานที่นี่ว่าไดเร็กทอรีของโปรเจ็กต์ SVN คือ /data/svn/project และเราต้องการแยกไฟล์ trunk/test.exe และไดเร็กทอรี trunk/notallowed/ ขั้นตอนมีดังนี้และคำสั่ง svn ที่ดำเนินการ ( ในไดเร็กทอรี bin ของไดเร็กทอรีการติดตั้ง svn) เป็นดังนี้:
# ขั้นแรกให้ส่งออกไลบรารี svn ทั้งหมด
ดัมพ์ svnadmin /data/svn/project > project_Original.dump
# จากนั้นแยกไฟล์ที่ไม่จำเป็นออกจากไฟล์ project_Original.dump และสร้างไฟล์ดัมพ์ใหม่
พิมพ์ project_Original.dump | svndumpfilter ไม่รวม trunk/test.exe trunk/notallowed > project_new.dump
# ถัดไปสร้างโครงการ svn ใหม่และนำเข้าไฟล์ดัมพ์ด้านบนไปยังโครงการใหม่
svnadmin สร้าง /data/svn/project_new
svnadmin โหลด /data/svn/project_new < project_new.dump
สุดท้าย ให้ลบไดเร็กทอรีโปรเจ็กต์เดิมและเปลี่ยน project_new เป็นโปรเจ็กต์ ควรสังเกตว่าคำสั่ง dump จะส่งออกบันทึกการแก้ไขและประวัติทั้งหมดในโครงการ svn ดังนั้นไฟล์ดัมพ์ที่ส่งออกจะมีขนาดใหญ่และเวลานำเข้าจะค่อนข้างยาว
ลบโฟลเดอร์หรือไฟล์บางส่วนในที่เก็บ SVN ออกจากฝั่งเซิร์ฟเวอร์โดยสมบูรณ์
หากคุณต้องการลบโฟลเดอร์หรือไฟล์ในที่เก็บ SVN อย่างสมบูรณ์ คุณสามารถใช้วิธีนี้ (ตัวอย่าง):
ตัวอย่าง: สมมติว่าพาธไลบรารี SVN คือ E:/svn/project และโครงสร้างไดเร็กทอรีในไลบรารีคือ
เจ้าหน้าที่ประกันคุณภาพ/ทรุงค์
ซอฟต์แวร์/แท็ก/test.exe
ลบไฟล์ test.exe ในไดเร็กทอรี Software/Tags/
ขั้นตอนคือ:
ดัมพ์ไลบรารี SVN และใช้ svndumpfilter เพื่อกรองไฟล์ที่จะลบออก สร้างไลบรารี SVN ใหม่และโหลดไฟล์ที่ประมวลผลลงในไลบรารี SVN ใหม่ คำสั่งเฉพาะคือ:
> svnadmin ดัมพ์ E:/svn/project > aaa.dump
> พิมพ์ aaa.dump | svndumpfilter ยกเว้น /Software/Tags/test.exe > bbb.dump
>svnadmin สร้าง E:/svn/project_new
>svnadmin โหลด E:/svn/project_new < bbb.dump
จากนั้นเปลี่ยนชื่อ project_new เป็นโปรเจ็กต์ โปรเจ็กต์ก่อนหน้าสามารถย้ายหรือตั้งชื่ออื่นได้ (เนื่องจากไดเร็กทอรี SVN ที่ใช้ใน TRAC คือโปรเจ็กต์ ไดเร็กทอรี SVN ที่ผู้ใช้ใช้เป็นโปรเจ็กต์ด้วย)
วิธีนี้สามารถบรรลุผลของการลบโฟลเดอร์หรือไฟล์บางไฟล์ในที่เก็บ SVN ได้อย่างสมบูรณ์เมื่อไม่มีเวอร์ชันมากมายในที่เก็บ SVN อย่างไรก็ตาม หากมีเวอร์ชันมากเกินไปในที่เก็บ SVN พื้นที่เก็บข้อมูลจะไม่เพียงพอเมื่อทำการดัมพ์ เวอร์ชัน ไม่สามารถทิ้งเวอร์ชันได้ มันใช้งานไม่ได้ ในขณะนี้ จะต้องติดตั้งฮาร์ดดิสก์ตัวอื่นที่สามารถรองรับพื้นที่จัดเก็บข้อมูลได้
วิธีการกู้คืนไฟล์หรือโฟลเดอร์ที่ถูกลบด้วย SVN
ใช้ TortoiseSVN:
1. ในสำเนาการทำงานในเครื่อง ให้ใช้ TortoiseSVN->แสดงบันทึกเพื่อดูประวัติของพื้นที่เก็บข้อมูล คุณสามารถใช้การค้นหา
2. ค้นหาเวอร์ชันที่ไฟล์หรือโฟลเดอร์ถูกลบ และคลิกขวาที่ ย้อนกลับการเปลี่ยนแปลงจากการแก้ไขนี้ ในข้อความบันทึก
3. ไฟล์หรือโฟลเดอร์จะถูกกู้คืนไปยังสำเนาการทำงานในเครื่อง หากถูกลบโดยไม่ได้ตั้งใจ เพียงส่งข้อมูลไปที่ Repository
การใช้ปลั๊กอิน Subclipse สำหรับ Eclipse:
1. ใช้ทีม -> แสดงประวัติพื้นที่เก็บข้อมูล SVN เพื่อดูประวัติของพื้นที่เก็บข้อมูล
2. ค้นหาเวอร์ชันที่ไฟล์หรือโฟลเดอร์ถูกลบ คลิกขวา เปลี่ยนกลับเป็นเวอร์ชัน XX
3. ไฟล์หรือโฟลเดอร์จะถูกกู้คืนไปยังสำเนาการทำงานในเครื่อง หากถูกลบโดยไม่ได้ตั้งใจ ให้ส่งข้อมูลไปที่ Repository