2010-11-09 8 views
9

Estoy tratando de convertir un repositorio de CVS en mercurial pero no puedo hacerlo funcionar.Convertir cvs a mercurial

que empezar con una salida más limpia:

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

que funciona muy bien

entonces que hago:

hg convert . 

pero fracasa con:

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

I' m ejecutando cvsnt en windows 7

Editar:
investigó esta un poco más y parece que comienza mercurial un servidor local cvs server y luego se comunica con esa instancia en lugar del servidor remoto.

Me baso en las siguientes observaciones:

  1. he creado un archivo de cvs.bat que envía los argumentos de línea de comandos en un archivo. El archivo muestra el argumento "servidor".
  2. monitor de proceso muestra que hg.exe intenta abrir el archivo C:\cvstest\:sspi;username=xxx;hostname=yyy.local:\cvsrepos que, por supuesto, falla.

¿Puede ser que hg no comprende la cadena de conexión sspi?

Edición 2:

No es una solución, pero he encontrado una solución: Copia el repositorio remoto completo a mi máquina y:

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

Todo funcionaba bien

+1

Eso es lo que intenté decir en mi respuesta, que podría marcarlo como respondida aunque eso, o agrega tu propia respuesta y márcala como la respuesta. –

Respuesta

0

Parece que están usando ConvertExtension. ¿Puedes probar hg convert desde la carpeta principal y especificar el nombre de la carpeta, en lugar de . y ver si funciona?

+0

Sí, estoy usando ConvertExtension ("hgext.convert =" en .hgrc). Especificar la fuente y/o la carpeta de destino no hace diferencia. – adrianm

2

Parece que el mensaje de error que le está diciendo a utilizar una ruta absoluta al repositorio, trate de usar

hg convert <full_path_including_drive> 

lugar de la ruta . en una caja de arena extraído de su repositorio CVS. También puede probar que especifica el tipo de repositorio en el comando convert añadiendo -s cvs al comando, el resultado sería algo como esto:

hg convert -s cvs C:\sandbox\cvsrepos 
Cuestiones relacionadas