2012-10-31 9 views
7

Domande simili sono state poste prima (come this una), ma le risposte non l'hanno risolto per me. Il mio file autori si presenta così:SVN a Git migrazione - autore non definito, ma è

cmannett85 = cmannett85 <[email protected]###> 
cbamber85 = cmannett85 <[email protected]###> 
www-data = cmannett85 <[email protected]###> 

E l'errore che ottengo è;

Author: cmannett85 not defined in users.txt file 

Questo errore si verifica a circa il 1500 impegnano, con le altre voci di autore essendo bene quindi la struttura di base delle voci deve essere corretta. La maggior parte dei problemi che ho già visto su SO si centrano su nomi utente SVN con uno spazio pre/aggiunto a loro, ma come si può vedere dall'errore incollato - non c'è spazio bianco estraneo.

Ho anche pensato che sarebbe stato possibile mappare un nome utente per uno identico, quindi ho cambiato il nome utente Git ma non ha fatto alcuna differenza. Ho anche provato a cambiare riga tra i formati Windows e Unix, ma ancora nessuna modifica.

invoco l'operazione utilizzando questo:

$ git svn clone https://subversion.assembla.com/svn/#### --authors-file=users.txt --no-metadata -s #### 

Ho provato a rimuovere il --no-metadata arg, ma nessuna differenza. Qualcuno può vedere dove ho sbagliato?

UPDATE

Seguendo il consiglio di pigro Badger, mi sono imbattuto:

$ svn log --xml | grep author | sort -u | perl -pe 's/.>(.?)<./$1 = /' 

e restituisce questo:

<author>cbamber85</author> 
<author>cmannett85</author> 
<author>www-data</author> 
+0

Sono in esecuzione nella esattamente lo stesso problema. Qualche nuova idea? (In esecuzione su un Windows maschine, versione git 1.8.3.msysgit.0) –

risposta

2

Sono sicuro - la preparazione di user-list da pura SVN -data prima clone sarà più a prova di proiettile modo

Ie qualcosa di simile:

svn log --xml URL | grep "author" | sort -u | ...strip xml-tags here... 
+0

Grazie, lo rassicurò che mi non stavo andando pazza, ma non ha rivelato il problema. Si prega di consultare il mio aggiornamento. – cmannett85

+1

@ cmannett85 - fuori dalle idee ... se riesci a individuare, quale revisione (esattamente) è problematica, ti suggerisco di propeditarlo. In caso di hg userò clone parziale e tirare -r per piccole serie (non sanno nulla di possibilità git svn) –

2

Credo di aver trovato il problema e la soluzione:

mio author.txt è stato codificato come UCS2 Little Endian dopo la conversione in ANSI la dimensione del file sceso al 50% e ha funzionato.

Il file è sceso da 70 KB a 35 KB, ma non credo che questa sia la soluzione.

Il mio author.txt è stato creato con uno script PowerShell da Windows Active Directory.

Ho cambiato anche la linea-end da CR LF a LF, ma lei ha ricordato, che avete già provato questo, anche. Quindi penso che sia un problema di codifica di charackter.

+0

mutevoli terminazioni di codifica e la linea non ha fatto la differenza per me :( – Toby

2

Ho appena incontrato lo stesso problema descritto qui e si è scoperto che creando un nuovo file .txt solo in notepad ++ (il file degli autori originali è stato generato da un comando di PowerShell che ho trovato altrove) e quindi copiando il contenuto del file originale nel nuovo file .txt, quindi il recupero ha funzionato.

scopre il file originale è stato codificato come UCS-2 Little Endian (come sopra), ma la codifica predefinita UTF-8 opere. Non ho avuto bisogno di cambiare le terminazioni di linea.

4

Appena inciampato su questa domanda e alla fine risolvendo il problema togliendo il segno del byte-order dal file authors.txt codificato nel file UTF-8, facendo in modo che Linux lo vedesse come un file ASCII in chiaro invece di UTF-8 .

Poiché il mio file è stato avviato in Windows come output PowerShell, la risposta più generale è che il testo semplice non è mai testo semplice, il che rende la risposta di Lazy Badger la migliore, poiché evita il mal di testa di queste differenze.

+0

Questo non fornisce una risposta alla Per criticare o chiedere chiarimenti ad un autore, lascia un commento sotto il loro post - puoi sempre commentare i tuoi post e una volta che hai [reputazione] sufficiente (http://stackoverflow.com/help/whats-reputation) si sarà in grado di [commento su ogni messaggio] (http://stackoverflow.com/help/privileges/comment) – AdamMc331

+0

chiederò questo -. ho presentato la mia risposta, perché non tutti possono facilmente rigenerare il file originale, e potrebbe essere utile sapere perché la risposta di pigro Badger funziona. questo non si qualifica come abbastanza contenuto per una risposta separata? – user4388759

+0

capisco da dove vieni da, ma quando ho visto questo nella coda di revisione (qualcun altro inbandierato esso) I pensano di averlo fatto quindi anche la tua risposta potrebbe essere considerata un commento, come suggerisci e suggerisci anche una risposta diversa. Se fossi in me, (supponendo che avessi il rappresentante per commentare) avrei semplicemente commentato un'altra risposta o anche la domanda su cosa hai fatto per te. – AdamMc331