2010-11-09 35 views
9

Tôi đang cố gắng chuyển đổi một kho CVS thành mercurial nhưng không thể làm cho nó hoạt động.Chuyển đổi cv thành mercurial

Tôi bắt đầu với một kiểm tra sạch:

cvs -d :sspi;username=xxx;hostname=yyy.local:/cvsrepos checkout repo 

nào hoạt động tốt

sau đó tôi làm:

hg convert . 

Nhưng nó không thành công với:

assuming destination .-hg 
initializing destination .-hg repository 
connecting to :sspi;username=xxx;hostname=yyy.local:/cvsrepos 
abort: unexpected response from CVS server (expected "Valid-requests", but got 'E cvs [server aborted]: Root :sspi;username=xxx;hostname=yyy.local:/cvsrepos must be an absolute pathname\n') 

tôi m chạy cvsnt trên windows 7

Edit:
Điều tra này nhiều hơn một chút và nó có vẻ như nhanh nhẹn bắt đầu một máy chủ địa phương cvs server và sau đó liên lạc với trường hợp mà thay vì máy chủ từ xa.

tôi giá này dựa vào những quan sát sau:

  1. Tôi tạo ra một tập tin cvs.bat sẽ gửi các đối số dòng lệnh vào một tập tin. Tệp này hiển thị đối số "máy chủ".
  2. trình theo dõi quá trình cho thấy hg.exe cố gắng mở tệp C:\cvstest\:sspi;username=xxx;hostname=yyy.local:\cvsrepos mà tất nhiên không thành công.

Có thể là hg không hiểu chuỗi kết nối sspi không?

Chỉnh sửa 2:

Không phải là một giải pháp nhưng tôi tìm thấy một workaround: Sao chép toàn kho từ xa đến máy tính của tôi và:

cvs -d :local:\localcopyofrepo checkout repo 
hg convert repo 

Tất cả mọi thứ đã làm việc tốt

+1

Đó là những gì tôi đã cố gắng nói trong câu trả lời của tôi, bạn có thể đánh dấu nó như là trả lời mặc dù hoặc thêm câu trả lời của riêng bạn và đánh dấu câu trả lời là câu trả lời. –

Trả lời

0

Dường như bạn đang sử dụng ConvertExtension. Bạn có thể thử hg convert từ thư mục mẹ và chỉ định tên thư mục, thay vì . và xem nó có hoạt động không?

+0

Có, tôi đang sử dụng ConvertExtension ("hgext.convert =" in .hgrc). Chỉ định nguồn và/hoặc thư mục đích không tạo ra sự khác biệt nào. – adrianm

2

Hình như các thông báo lỗi là nói cho bạn sử dụng một tên đường dẫn tuyệt đối đến kho, hãy thử sử dụng

hg convert <full_path_including_drive> 

chứ không phải là con đường . trên một sandbox kiểm tra ra khỏi kho CVS của bạn. Bạn cũng có thể thử xác định kiểu kho trong lệnh convert bằng cách thêm -s cvs để lệnh, kết quả sẽ giống như thế này:

hg convert -s cvs C:\sandbox\cvsrepos 
Các vấn đề liên quan