2015-01-23 27 views
10

Vị trí svn repo của chúng tôi đã được thay đổi thành một url khác và ngoài ra các đường dẫn tương đối của thân cây, cành và thẻ đã được di chuyển một chút. Bây giờ khi tôi cố gắng svn relocate, tôi nhận được thông báo này.Lỗi di chuyển svn - đích di chuyển không hợp lệ

Invalid relocation destination: 'https://my-repo-server/new-proj-name/branches/my-branch' (does not point to target)

tôi đã cố gắng chuyển đến địa chỉ của các repo, và cố gắng một lần nữa với url của chi nhánh tôi muốn chuyển sang. Tôi đã không thử với switch --relocate vì điều đó không được chấp nhận trong phiên bản svn của tôi.

Tôi tin rằng điều này sẽ có tác dụng có cấu trúc thư mục cũng không bị thay đổi.

+0

Có thực sự là cùng một kho lưu trữ ở một vị trí mới hoặc một kho lưu trữ mới có cùng mã không? UUID có giống với 'svn info' không? – Ben

+0

Đây là một kho lưu trữ mới có cùng mã và lịch sử. Về cơ bản, chúng tôi chia tách kho lưu trữ thành hai; một cho mã front-end và một cho back-end. – AlexMA

+0

Đó là lý do tại sao "di chuyển" không hoạt động. Di chuyển chỉ hoạt động khi bạn di chuyển lưu trữ của * cùng một kho lưu trữ đến một vị trí mới; một trong những kiểm tra nó thực hiện trước khi cho phép di chuyển để tiến hành (chi tiết trong [svn book] (http://svnbook.red-bean.com/en/1.7/svn.ref.svn.c.relocate.html)) , là so sánh UUID của kho lưu trữ cũ với kho lưu trữ mới. – Ben

Trả lời

10

Giải quyết nó bằng một giải pháp stopgap - từ bên trong thư mục gốc của bản sao làm việc, xóa thư mục svn và chạy svn checkout <new-url-of-branch> .

Nếu ai có một câu trả lời tốt hơn mà không liên quan đến xóa các thư mục svn, Tôi sẽ chọn nó.

+0

http://stackoverflow.com/questions/14656527/svn-switch-from-trunk-to-branch –

+0

Tôi đã sử dụng tham số --force. – ATorras

0

(Điều này có nghĩa là như bình luận cho câu trả lời của riêng @ AlexMA, nhưng một số đã kết thúc ngày của riêng mình.)

Có lẽ người ta có thể chỉnh sửa các wc.db bên svn thư mục với sqlite3 CLI. Nhưng trước hết phải tìm ra cấu trúc của cơ sở dữ liệu để chỉnh sửa trực tiếp các bảng có liên quan thông qua SQL - đơn giản là đổ wc.db, chỉnh sửa tệp kết xuất, tải lại như với kết quả lưu trữ trong bản sao làm việc không còn được nhận dạng như vậy nữa. Nhưng điều này có thể mở thêm các vấn đề. Sau khi tất cả các bản sao làm việc được coi là không thể phân phối bởi các nhà phát triển SVN, vì vậy tốt hơn cập nhật WC để sửa đổi cuối cùng của kho cũ, thanh toán một WC mới từ kho mới tại cùng một sửa đổi, sau đó sao chép tất cả sửa đổi không được sửa đổi từ cũ sang mới WC và tạo lại bất kỳ danh sách thay đổi nào.