lỗi chuyển đổi svn - không phải là cùng một kho lưu trữ


76

Gần đây tôi đã di chuyển máy chủ SVN và bây giờ tôi đang muốn chuyển các bản sao đang hoạt động từ máy tính của mình sang máy chủ mới. Nhưng tôi mắc phải lỗi kỳ lạ nhất. tôi làm :

svn switch http://99.99.99.new/svn/company/project/trunk/web

nhưng tôi nhận được

svn: 'http://99.99.99.old/svn/company/project/trunk/web'
is not the same repository as
'http://99.99.99.new/svn/company/project'

quá trình di chuyển được thực hiện với kết xuất và nhập ... và gốc repo nằm trên http://99.99.99.new/svn/company/project

Các bạn có bất kỳ ý tưởng nào về những gì có thể sai? cảm ơn rất nhiều

Câu trả lời:


131

Hãy thử sử dụng

svn switch --relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web

Như Sporino đã lưu ý trong các bình luận, kể từ Subversion 1.7, có một relocatelệnh riêng biệt :

svn relocate http://99.99.99.old/svn/company/project/trunk/web http://99.99.99.new/svn/company/project/trunk/web

1
@Steef vì vậy url phải giống với url trước đó, rằng nó sẽ trỏ đến một vị trí khác? Vì vậy, ví dụ như svn switch --relocate .../project1/trunk/SomeDir .../project2/trunkcông việc wount, phải không? Tôi cần phải có svn switch --relocate .../project1/trunk/SomeDir .../project2/trunk/SomeDir?
Eugene

1
Kể từ subversion 1.7 có một lệnh mới được gọi là chuyển vị trí để thực hiện tương tự.
Robert Kühne

@Eugene Chuyển vị trí đến "vị trí cơ sở" mới với svn switch --relocate http://old.location/svn/project/trunk http://new.location/svn/project/trunk. Đây không phải là một kho lưu trữ hiện có. Sau đó, sử dụng lệnh chuyển đổi bình thường sang kho lưu trữ của bạn svn switch http://new.location/svn/projects/project/trunk.
Nicky Vandevoorde

23

Ngoài ra, trong TortoiseSVN có tùy chọn "Chuyển vị trí", bạn nên sử dụng tùy chọn này trong những trường hợp như thế này (thay vì tùy chọn "Chuyển đổi").


đồng ý ... nhưng tôi đang trên ubuntu để tùy chọn này không có sẵn :)
Gabriel Solomon

7

Cách tốt nhất của tôi để thực hiện việc tái định cư SVN là:

svn switch --relocate $(svn info | grep ^URL | cut -f 2 --delim=' ') \
                      new_url_or_repository

Bằng cách này, sử dụng đúng url cũ từ svn infolệnh, bạn chắc chắn không nhập sai, đây là một trong những lỗi phổ biến.

Nếu mọi thứ đều chính xác, bạn sẽ được nhắc với các chi tiết xác thực cho vị trí mới, nếu chúng khác nhau.

Sau khi ra lệnh, hãy đảm bảo kiểm tra kỹ xem thay đổi đã được áp dụng hay chưa khi xem thông số URL, phát hành

svn info

Sau khi di dời, hãy cập nhật bản sao làm việc của bạn, để kiểm tra xem mọi thứ có ổn không:

svn update

2c của tôi ..


4

Sử dụng relocatetham số dòng lệnh cho switchlệnh.

tài liệu chuyển đổi svn

Đôi khi quản trị viên có thể thay đổi "vị trí cơ sở" của kho lưu trữ của bạn - nói cách khác, nội dung của kho lưu trữ không thay đổi, nhưng URL chính được sử dụng để truy cập thư mục gốc của kho lưu trữ thì có. Ví dụ: tên máy chủ có thể thay đổi hoặc lược đồ URL hoặc có thể chỉ là đường dẫn dẫn đến kho lưu trữ. Thay vì kiểm tra một bản sao làm việc mới, bạn có thể yêu cầu lệnh svn switch "viết lại" phần đầu của tất cả các URL trong bản sao làm việc của bạn. Sử dụng lệnh --relocate để thay thế. Không có nội dung tệp nào được thay đổi, và kho lưu trữ cũng không được liên hệ. Nó tương tự như chạy một tập lệnh perl trên bản sao đang làm việc của bạn .svn / thư mục chạy s / OldRoot / NewRoot /.


1

Bạn cần sử dụng tùy chọn --relocate:

svn switch --relocate http://99.99.99.new/svn/company/project/trunk/web

xem svnbook để biết thêm chi tiết.


cảm ơn vì đề xuất, nhưng như BastardSaint đã viết, bạn cần chỉ định cả từ và đến URLS
Gabriel Solomon

1
Chỉ có thêm thiết kế giao diện người dùng kém khiến tôi khó chịu về lật đổ và SVK. Có thể có những trường hợp sử dụng kỳ lạ yêu cầu bạn chỉ định hai URL, nhưng các công cụ chỉ nên lấy mặc định chết tiệt. Ví dụ, trong SVK, tôi không CẦN chỉ định nguồn và đích hợp nhất, nhưng tôi thì có.
Chris K
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.