2009-02-19 23 views
7

Chúng tôi có một kho lưu trữ Subversion với một thư mục đó là:Làm thế nào tôi có thể trích xuất một cây con từ kho SVN của tôi thành một kho lưu trữ mới?

  • Không thực sự có nhu cầu kiểm soát sửa đổi vượt ra ngoài khả năng của RCS
  • Không là phiên bản kết hợp với bất cứ điều gì khác trong kho
  • Modified khoảng sáu thường xuyên như phần còn lại của kho lưu trữ

Mặc dù tôi biết rằng số sửa đổi cao không phải là vấn đề, tuy nhiên tôi muốn kéo một thư mục này ra khỏi kho chính của tôi và vào cond, lý tưởng mới.

Quy trình tốt nhất cho điều đó là gì? Nếu nó tạo sự khác biệt, kho lưu trữ SVN được lưu trữ trên một máy tính FreeBSD (... kiểm tra ...).

Cần lưu ý rằng mặc dù tôi cần giữ lại lịch sử phiên bản trong kho lưu trữ mới, không cần phải xóa nội dung trong phần cũ; nó chỉ có thể ngồi đó, cho tất cả những gì tôi quan tâm.

Trả lời

6

Bạn có thể sử dụng svnadmin đổsvnadmin tải để tạo ra một kho lưu trữ mới từ bản gốc một; sau đó sao chép thư mục không thực sự phù hợp với lược đồ của bạn đến một vị trí tốt hơn, sau đó xóa mọi thứ khác. Trong kho gốc, bạn chỉ cần xóa thư mục không phù hợp. Điều này giữ nguyên tất cả lịch sử, và bạn kết thúc với hai kho lưu trữ.

Có lẽ có một cách để làm sạch cả hai kho lưu trữ từ các phần vô dụng trong lịch sử (svndumpfilter), nhưng vì không gian đĩa cứng khá rẻ nên tôi không nghĩ điều này là cần thiết. Dù sao, các SVN documentation có tất cả các thông tin về nó.

+0

Ngoài ra còn có svnrdump' SVN v. 1.7) mới hơn [được cho là có thể thực hiện điều này từ xa] (http://stackoverflow.com/questions/939963/how-do-i-migrate-an-svn-repository- to-another-svn-repository/38288494 # 38288494). –

-1

Tôi sẽ xuất (không thanh toán) thư mục, nhập nó vào kho lưu trữ mới, sau đó xóa nó khỏi thư mục gốc (với thông báo tường trình cho biết nó đã đi đâu, dĩ nhiên ;-).

Đó có thể hoặc không có thể là cách "tốt nhất" để làm điều đó ...

+0

Không có lịch sử. Xin lỗi, đó không phải là một công ty nonstarter. –

+0

Tôi đã không nhận ra tại thời điểm mà bạn muốn bảo tồn lịch sử: -/ –

+0

Không phải lo lắng, nó không rõ ràng. Tôi đã sửa đổi câu hỏi. –

-1

Tôi không biết liệu tôi có hiểu chính xác điều này hay không, nhưng có một giải pháp tốt cho điều đó. Nếu kho lưu trữ ban đầu của bạn ở miền svn: // và thư mục bạn sử dụng nhiều được gọi là "thư mục", tôi tin rằng bạn có thể thực hiện lệnh sau: svn co svn://domain/folder để chỉ thanh toán thư mục đó. Ví dụ: