2010-11-09 6 views
9

Я пытаюсь преобразовать репозиторий CVS в mercurial, но не могу заставить его работать.Преобразование cvs в mercurial

я начинаю с чистого проверки:

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

Который работает отлично

тогда я:

hg convert . 

Но он терпит неудачу с:

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') 

Я m работает cvsnt на окнах 7

Edit:
исследуемые это немного больше, и это, кажется, как ртутный запускает локальный сервер cvs server, а затем связывается с этим экземпляром вместо удаленного сервера.

Я основываю это на следующих наблюдениях:

  1. Я создал файл cvs.bat, который отправляет аргументы командной строки в файл. Файл показывает аргумент «сервер».
  2. монитор процесса показывает, что hg.exe пытается открыть файл C:\cvstest\:sspi;username=xxx;hostname=yyy.local:\cvsrepos который, конечно же, не работает.

Может ли быть, что hg не понимает строку подключения sspi?

Edit 2:

Не решение, но я нашел обходной путь: Скопировать полный удаленный репозиторий к моей машине и:

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

Все работало отлично

+1

Вот что я пытался сказать в моем ответе, вы можете пометить его как ответили хотя или добавить свой собственный ответ и пометить его как ответ. –

ответ

0

Это выглядит, как вы используют ConvertExtension. Можете ли вы попробовать hg convert из родительской папки и указать имя папки, а не . и посмотреть, работает ли она?

+0

Да, я использую ConvertExtension ("hgext.convert =" в .hgrc). Указание исходной и/или целевой папки не имеет значения. – adrianm

2

Похоже, сообщение об ошибке говорит вам, чтобы использовать абсолютный путь к файлу в хранилище, попробуйте использовать

hg convert <full_path_including_drive> 

, а не . пути на извлеченную песочнице вашего хранилища CVS. Также можно попробовать указать тип хранилища в команде convert путем добавления -s cvs к команде, то результат будет выглядеть примерно так:

hg convert -s cvs C:\sandbox\cvsrepos 
Смежные вопросы