2009-09-16 4 views
6

Ai đó có thể vui lòng chỉ cho tôi đúng hướng để di chuyển một kho lưu trữ Subversion 1.4 sang Subversion 1.6 trên một máy chủ khác không? Tôi đánh giá cao bất kỳ sự giúp đỡ nào tôi có thể nhận được, tôi không có nhiều may mắn googling này.Di chuyển từ Subversion 1.4 đến 1.6

+0

Để xây dựng, tôi đã thử làm một bãi chứa từ 1,4 và tải nó vào 1,6 (nhiều trong sổ đỏ lật đổ và tôi thậm chí đã thực hiện điều này trước khi thành công giữa các máy chủ v1.4). Khi tôi cố tải tệp v1.4 vào máy chủ v1.6, tôi gặp lỗi về định dạng tiêu đề của tệp kết xuất. Từ những gì tôi đã đọc, cách bố trí kho lưu trữ đã thay đổi giữa 1,4 và 1,6 –

+0

Để tiếp tục xây dựng một lần nữa, hai máy chủ này nằm trên các máy khác nhau với các hệ điều hành khác nhau. Máy chủ 1.4 là một hộp Gentoo cũ là nhiệm vụ quan trọng và không thể nâng cấp mà không có nguy cơ phá vỡ một thứ gì đó (chúng tôi đang di chuyển ra xa) và hộp 1.6 mới đang chạy phiên bản lật đổ trên Windows Server 2003. Tôi cũng có không có quyền kiểm soát hộp mới, tôi chỉ được quản trị viên mạng tạm thời cho phép truy cập và cài đặt kho lưu trữ mới cho máy chủ mà anh ta đã thiết lập. –

Trả lời

7

Trước hết, tôi không chắc chắn 100% rằng bạn có thể di chuyển tệp kết xuất tự do giữa Linux và Windows. Bạn có thể phải chuyển đổi kết thúc dòng.

Tiếp theo, trước tiên bạn nên cố gắng di chuyển kho lưu trữ ở định dạng 1.4 và sau đó nâng cấp nó tại chỗ. Một cách để thực hiện điều đó, trên máy mục tiêu:

svnadmin create --pre-1.5-compatible /path/to/repo 
svnadmin load /path/to/repo <dumpfile 
svnadmin upgrade /path/to/repo 

Xem SVN book để biết chi tiết về svnadmin.

+0

Điều đó đã làm các trick. Cảm ơn bạn đã giúp đỡ của bạn, nó được nhiều đánh giá cao. –

+0

Định dạng kết xuất là nền tảng độc lập. Vì vậy, bạn có thể di chuyển tệp kết xuất một cách an toàn giữa Linux và Windows. – Stefan

+0

@Stefan: Cảm ơn, tôi đã nghĩ, nhưng không chắc chắn. – Avi

0

Đảm bảo rằng bạn đang xử lý tệp kết xuất đó dưới dạng tệp nhị phân. Nó trông giống như một tập tin văn bản và bạn có thể lấy đi bằng cách chỉnh sửa nó theo một số cách ... nhưng nó không chỉ là văn bản. Vì vậy, nếu một chuyển đổi dòng mới đã xảy ra trong quá trình chuyển giao hoặc một cái gì đó bạn sẽ gió lên với một mớ hỗn độn.

2

Chúng tôi đã thực hiện theo cách hơi khác: chúng tôi đã tạo một kho lưu trữ mới và sử dụng svnsync để tạo bản sao của kho lưu trữ. Điều này nên được sử dụng như là chỉ đọc cho đến khi bạn muốn chuyển đổi. Sau đó thêm các móc vào kho lưu trữ cũ để cấm các cam kết (hiển thị lý tưởng và thông báo lỗi cho người dùng của bạn di chuyển đến kho lưu trữ mới). svnsync lần cuối và kích hoạt kho lưu trữ mới. Điều này nhanh hơn nhiều so với bán phá giá và hiệu quả hơn vì chúng tôi có thể bắt kịp và đồng bộ hóa các thay đổi mới nhất đối với các bản repos cũ.

+0

Bạn cũng có thể thực hiện các biến gia tăng và tải. – retracile

+0

Điều này ít gây đau cho chúng tôi, ví dụ: một trong số 1.4 repos của chúng tôi có một không gian trên đĩa> 32GB (nén svn diff), bạn có thể tưởng tượng kích thước của bãi chứa! :-) – jdehaan