ฉันพยายามใช้คำตอบที่ยอมรับ แต่ฉันมีพื้นที่เก็บข้อมูลขนาดใหญ่และฉันต้องการที่จะส่งออกไดเรกทอรีขนาดเล็กและฉันไม่สามารถที่จะถ่ายโอนพื้นที่เก็บข้อมูลทั้งหมด
ดังนั้นฉันส่งออกเฉพาะรุ่นที่มีการเปลี่ยนแปลงไดเรกทอรีของฉัน (อาจไม่ทำงานหากไดเรกทอรีที่คุณต้องการส่งออกมีการอ้างอิงไปยังสถานที่อื่น ๆ ใน repo ของคุณ)
svn log URL_to_docs | awk '/^r/{gsub(/^r/,"",$1);print $1}' > revisions.txt
#tac for revisions in reverse (oldest revision first)
tac revisions.txt | while read line; do svnadmin dump /svn/old_repo -r$line >> ./docs_revisions.dump ; done
#You don't have to filter if you commited only files in your directory docs in your exported revisions
svndumpfilter include path/to/docs --drop-empty-revs --renumber-revs --preserve-revprops < ./docs_revisions.dump > ./docs_only.dump
svnadmin load /svn/new_repos < ./docs_only.dump
คุณต้องแทนที่ repo URL ( URL_to_docs
), ตำแหน่งในเซิร์ฟเวอร์ ( /svn/old_repo
) และพา ธ ไปยังเอกสารในที่เก็บ ( path/to/docs
)
คุณสามารถแก้ไขได้อย่างง่ายดายdocs_only.dump
หากคุณต้องการเปลี่ยนตำแหน่งของไดเรกทอรีเอกสารในที่เก็บใหม่ของคุณ