Tôi đã cố gắng sử dụng câu trả lời được chấp nhận, nhưng tôi đã có một kho lưu trữ lớn và tôi muốn xuất một thư mục nhỏ, và tôi không đủ khả năng để đổ toàn bộ kho lưu trữ.
Vì vậy, tôi chỉ xuất các sửa đổi mà thư mục của tôi đã thay đổi (Điều này có thể không hoạt động nếu thư mục bạn muốn xuất có tham chiếu đến các địa điểm khác trong kho lưu trữ của bạn).
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
Bạn phải thay thế URL của bạn repo (URL_to_docs
), vị trí trong máy chủ (/svn/old_repo
) và đường dẫn đến tài liệu trong kho lưu trữ (path/to/docs
)
Bạn có thể dễ dàng chỉnh sửa của bạn docs_only.dump
nếu bạn muốn thay đổi vị trí của thư mục doc của bạn trong kho lưu trữ mới của bạn.
Ví dụ hay. Lưu ý rằng như đã nêu trong tài liệu tôi liên kết đến, giải pháp này sẽ đánh số lại tất cả các bản sửa đổi để không có "ô trống". Cần ghi nhớ điều gì đó nếu bạn tham khảo các bản sửa đổi tài liệu ở bất kỳ nơi nào khác. –
Tôi đã đề xuất xóa các bản sửa đổi trống để tránh thêm một loạt các bản sửa đổi trống vào kho lưu trữ đích, rất có thể gây nhầm lẫn cho bất kỳ ai không biết về tải. Vì --preserve-revprops sẽ giữ các thông báo cam kết thay vì sử dụng thông báo tải mặc định. – Samuel
Cảm ơn, tôi có quyền truy cập vào kho lưu trữ - vì vậy tôi sẽ cung cấp cho ảnh này. – leftend