2010-11-09 12 views
9

Sto provando a convertire un repository CVS in mercurial ma non riesco a farlo funzionare.Converti cvs in mercurial

comincio con un checkout pulito:

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

che funziona bene

Ho poi faccio:

hg convert . 

ma non riesce 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 che esegue cvsnt su windows 7

Edit:
indagato questo un po 'di più e sembra che mercuriale avvia un server locale cvs server e poi comunica con tale istanza al posto del server remoto.

Baso questa sulle seguenti osservazioni:

  1. ho creato un file di cvs.bat che invia gli argomenti della riga di comando in un file. Il file mostra l'argomento "server".
  2. monitor di processo mostra che hg.exe tenta di aprire il file C:\cvstest\:sspi;username=xxx;hostname=yyy.local:\cvsrepos che, naturalmente, non riesce.

Può essere che hg non capisca la stringa di connessione sspi?

Edit 2:

non è una soluzione, ma ho trovato una soluzione: Copia il repository remoto completo alla mia macchina e:

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

Tutto ha funzionato bene

+1

Questo è quello che ho cercato di dire che nella mia risposta, si potrebbe segnare come risposta se oppure aggiungere la propria risposta e contrassegnarla come risposta. –

risposta

0

Sembra che tu stanno usando ConvertExtension. Puoi provare hg convert dalla cartella principale e specificare il nome della cartella, invece di . e vedere se funziona?

+0

Sì, sto utilizzando ConvertExtension ("hgext.convert =" in .hgrc). La specifica della cartella di origine e/o di destinazione non fa differenza. – adrianm

2

Sembra che il messaggio di errore che si sta dicendo di utilizzare un percorso assoluto al repository, provare a utilizzare

hg convert <full_path_including_drive> 

piuttosto che il percorso . su una sandbox controllato dalla vostra repository CVS. Si potrebbe anche provare a specificare il tipo di repository nel comando convert aggiungendo -s cvs al comando, il risultato sarebbe simile a questa:

hg convert -s cvs C:\sandbox\cvsrepos