2009-03-24 33 views
72

Tôi đang di chuyển kho lưu trữ Subversion của tôi từ máy này sang máy khác. Tôi có một vài phân tán các bản sao làm việc trên máy khác nhau, và tôi đã phát hiện ra rằng tôi có thể dễ dàng chuyển đổi các bản sao làm việc kể từ máy chủ cũ sang cái mới với lệnh sau đây:Tôi có thể chuyển các kho SVN từ Eclipse không?

svn --relocate svn://oldServer/repo svn://newServer/repo 

Tuy nhiên, trên một trong những máy của tôi , Tôi sử dụng Eclipse với Subclipse, và tôi không thích sử dụng SVN dòng lệnh trên các dự án Eclipse của tôi. Câu hỏi của tôi là liệu có thể chuyển các kho SVN từ bên trong Eclipse bằng cách sử dụng Subclipse hoặc Subversive.

Trả lời

92

Tôi nghĩ bạn cần phải đi vào quan điểm 'trình duyệt kho lưu trữ' ở đó bạn nhấp chuột phải vào kho lưu trữ hiện tại của bạn và 'di chuyển' nó sang một tên miền khác.

+7

Điều này làm việc hoàn hảo trên hộp tôi đã chạy Subclipse, và một cái gì đó rất tương tự đã làm việc trên hộp với Subversive. Bí quyết về Subversive hóa ra là sửa đổi "thuộc tính vị trí" trong trình duyệt kho. Cảm ơn rất nhiều! –

+3

Subversive không có khả năng di chuyển qua các giao thức. Đi từ SVN + SSH sang HTTPS dường như không thể, tiếp tục xây dựng URL SVN + SSH và yêu cầu thông tin đăng nhập cho nó. Làm thế nào là nó với Subclipse? –

+3

Lưu ý, bạn cần mở bất kỳ dự án hiện có nào sử dụng kho lưu trữ cũ, vì lệnh "di chuyển" sẽ chỉ cập nhật các dự án đang mở. Điều này là quan trọng, bởi vì sau khi bạn di chuyển, không dễ dàng để di chuyển một lần nữa trên bất kỳ dự án đã đóng bạn bỏ qua. Tôi đã mắc lỗi này và phải quét sạch các dự án đã đóng của mình và thanh toán lại. – Cerin

4

Trong Eclipse Navigator, nếu bạn bấm chuột phải vào tên dự án, một menu phụ sẽ xuất hiện. Trên menu phụ chọn Nhóm sẽ cung cấp một số tùy chọn menu bổ sung. Chọn "Swich to Branch/Tag/Revision ..." và một cửa sổ sẽ xuất hiện cho phép bạn chỉ định nhánh mới hoặc trong trường hợp của bạn là một vị trí lưu trữ mới.

+0

Tôi có đặc quyền để nhận xét, vì vậy tôi sẽ chỉ ra rằng bình luận của Stefan dưới đây (và câu trả lời được chấp nhận của Luke ở trên) là chính xác. –

+0

Tôi đã thử điều này và nó đã không hoạt động: SVN Swtich đã gặp phải một vấn đề. org.tigris.subversion.javahl.ClientException: svn: ... không phải là kho lưu trữ giống như ... – PiTheNumber

13

Không sử dụng tùy chọn "Nhóm/chuyển đổi", mà là thay đổi sang phối cảnh "Khám phá kho lưu trữ SVN" và thay đổi vị trí URL tại vị trí của kho lưu trữ của bạn. Làm việc như một say mê trên Indigo - sử dụng Subversive trong trường hợp của tôi.

Khi sử dụng Subversive, cảnh báo này sẽ hiển thị cảnh báo "Các dự án đính kèm sẽ được di chuyển vì URL gốc của kho khác với URL đã nhập trước đây", chỉ là những gì bạn muốn. Hãy chắc chắn mở tất cả các dự án bạn muốn di chuyển trước khi thực hiện việc này.

Khi nhận được "Không thể di chuyển các dự án kết nối" với "Di dời không thể thực hiện vì địa chỉ URL mới đề cập đến kho khác nhau" thì có lẽ gốc kho của bạn không có trunk/thẻ/chi nhánh thư mục hoặc có các thư mục như vậy trong thư mục con. Sau đó, trên tab bảng tính Nâng cao, tắt tùy chọn Bật phát hiện cấu trúc có thể hữu ích.

Nếu bạn nhận được "Không thể thực hiện tái định dạng vì URL mới đề cập đến kho lưu trữ không hợp lệ (URL không chính xác hoặc thông tin xác thực được chỉ định)" thì cũng đảm bảo đường dẫn gốc trong URL lưu trữ mới khớp với gốc của URL cũ. (Nói cách khác: đảm bảo rằng /new/path trong ảnh chụp màn hình ở trên có các thư mục con giống như URL cũ.)

+1

Đây là câu trả lời đúng với các bản cài đặt Eclipse mới hơn. –

0

Bạn có thể chỉ trao đổi tên máy chủ trong DNS; điều này có thể dễ dàng hơn việc chuyển tất cả các bản sao làm việc.

10

Chỉ cần nhấp chuột phải vào dự án-> nhóm -> ngắt kết nối.

Sau đó, nhấp chuột phải vào dự án -> team -> share -> vào SVN mới của bạn.

Vậy đó!

+0

+1 Đã giúp rất nhiều! – pwagner

+2

Khi tôi thực hiện phương pháp này, tôi mất tất cả lịch sử ... – gordon613

3

Bạn có thể làm như sau:

Tới dự án xem thám hiểm -> bấm chuột phải vào dự án của bạn -> nhóm -> switch ... và bây giờ hãy chọn URL mới.

Thats all!

1

Tôi không thể di chuyển từ nhật thực của mình. Tôi có các dự án khác nhau về các nhánh và thẻ khác nhau (chỉ đọc để chỉ so sánh các phiên bản khác nhau) của cùng một kho lưu trữ. Khi ip của máy chủ svn của chúng tôi thay đổi, tôi có thể di dời qua TortoiseSVN nhưng không phải từ Subclipse.

Thay đổi từ http://oldserver/svn/PROJECTNAME để http://newserver/svn/PROJECTNAME tôi nhận được:

org.apache.subversion.javahl.CientException: Invalid operation on the current working directory 
svn: Cannot relocate 'E:\…\workspaces\PROJECTNAME\tags\modulename\2.4.007\base' as it is not the root of a working copy; try relocating 'E:\…\workspaces\PROJECTNAME\tags\modulename\2.4.007' instead 

Ok nhưng tôi không có quyền kiểm soát này. Tôi đã kết thúc bằng cách giải quyết sự cố liên quan đến tệp máy chủ của mình.

0

Trong Eclipse, chuyển đến Window -> Perspective -> Open Perspective -> Other -> SVN Repository Exploring. Nhấp vào Ok

Sau đó nhấp chuột phải vào kho lưu trữ bạn muốn thay đổi -> Thuộc tính vị trí.

Thay đổi kết thúc nhấp chuột url.

Vậy đó!

Các vấn đề liên quan