Nếu bạn muốn di chuyển kho lưu trữ và lưu giữ lịch sử, có thể bạn sẽ cần quyền truy cập hệ thống tệp trên cả hai máy chủ. Giải pháp đơn giản nhất, nếu chương trình phụ trợ của bạn là FSFS (mặc định trên các phiên bản gần đây), là tạo một bản sao hệ thống tệp của toàn bộ thư mục kho lưu trữ.
Nếu bạn có chương trình phụ trợ Berkley DB, nếu bạn không chắc chắn phần phụ trợ của mình là gì hoặc nếu bạn đang thay đổi số phiên bản SVN, bạn sẽ muốn sử dụng svnadmin để kết xuất kho lưu trữ cũ của mình và tải nó vào kho. Việc sử dụng svnadmin dump
sẽ cung cấp cho bạn một bản sao lưu tệp duy nhất mà bạn có thể sao chép vào hệ thống mới. Sau đó, bạn có thể tạo và sử dụng kho lưu trữ mới (trống) svnadmin load
, về cơ bản sẽ phát lại tất cả các cam kết cùng với siêu dữ liệu của nó (tác giả, dấu thời gian, v.v.).
Bạn có thể đọc thêm về quy trình kết xuất / tải tại đây:
http://svnbook.red-bean.com/en/1.8/svn.reposadmin.maint.html#svn.reposadmin.maint.migrate
Ngoài ra, nếu bạn làm vậy svnadmin load
, hãy đảm bảo rằng bạn sử dụng --force-uuid
tùy chọn, nếu không mọi người sẽ gặp sự cố khi chuyển sang kho lưu trữ mới. Subversion sử dụng UUID để xác định kho lưu trữ nội bộ và nó sẽ không cho phép bạn chuyển một bản sao đang hoạt động sang một kho lưu trữ khác.
Nếu bạn không có quyền truy cập hệ thống tệp, có thể có các tùy chọn của bên thứ ba khác (hoặc bạn có thể viết một cái gì đó) để giúp bạn di chuyển: về cơ bản bạn phải sử dụng nhật ký svn để phát lại từng bản sửa đổi trên kho lưu trữ mới và rồi sửa siêu dữ liệu sau đó. Bạn sẽ cần có các tập lệnh hook pre-revprop-change và post-revprop-change hook để thực hiện việc này, loại này giả định quyền truy cập hệ thống tệp, vì vậy YMMV. Hoặc, nếu bạn không muốn giữ lại lịch sử, bạn có thể sử dụng bản sao làm việc của mình để nhập vào kho lưu trữ mới. Nhưng hy vọng đây không phải là trường hợp.
svnrdump dump https//remote/svn/trunk > repos.dump
. Trong hầu hết các trường hợp, lệnh cũng hoạt động với SVN 1.6, nhưng có thể có một số vấn đề, hãy xem tài liệu. Hoạt động cả trong * nix và Windows.