2012-10-31 5 views
7

Ähnliche Fragen wurden zuvor gestellt (wie this eins), aber die Antworten haben es nicht für mich behoben. Meine Autoren-Datei wie folgt aussieht:SVN zu Git Migration - undefined Autor, aber es ist

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

Und die Fehler, die ich bekommen ist;

Author: cmannett85 not defined in users.txt file 

Dieser Fehler tritt bei etwa der 1500. verpflichten, mit den anderen Autor Einträge sind in Ordnung, so dass die Grundstruktur der Eingaben korrekt sein müssen. Die meisten der Probleme, die ich bereits in SO gesehen habe, konzentrieren sich auf SVN-Benutzernamen, denen ein Leerzeichen vorangestellt/angehängt wurde, aber wie Sie anhand des eingefügten Fehlers sehen können, gibt es keinen überflüssigen Leerraum.

Ich dachte auch, es könnte sein, dass ich einen Benutzernamen für einen identischen zugeordnet habe, also änderte ich den Git-Benutzernamen, aber es machte keinen Unterschied. Ich habe sogar versucht, die Zeilenendung zwischen Windows- und Unix-Formaten zu wechseln, aber auch hier keine Änderung.

rufe ich den Betrieb dies mit:

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

ich entfernen versucht, die --no-metadata arg, aber keinen Unterschied. Kann jemand sehen, wo ich falsch gelaufen bin?

UPDATE

Nach Faulen Badger Rat, ich lief:

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

Und es gibt diesen:

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

Ich laufe in genau das gleiche Problem. Irgendwelche neuen Ideen? (läuft auf einer Windows-Maschine, Git-Version 1.8.3.msysgit.0) –

Antwort

2

Ich bin sicher - Vorbereitung Benutzerliste aus reinem SVN -data vor Klon wird kugelsicherer Weg sein

Ie so etwas wie:

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

Danke, es beruhigte es mir, ich wurde nicht verrückt, aber hat das Problem nicht offenbart. Bitte sehen Sie mein Update. – cmannett85

+1

@ cmannett85 - aus Ideen ... wenn Sie erkennen können, welche Revision (genau) problematisch ist, werde ich Propedit vorschlagen. Im Falle von hg werde ich teilweise klonen und ziehen -r von kleinen Serien (wissen Sie nichts über git svn Möglichkeiten) –

2

Ich denke, dass ich das Problem und die Lösung gefunden:

Meine author.txt codiert wurde als UCS2 Little Endian, nachdem es auf ANSI die Dateigröße Umwandlung fiel auf 50% und es hat funktioniert.

Die Dateigröße fiel von 70KB auf 35KB, aber ich denke nicht, dass dies die Lösung ist.

Meine author.txt wurde mit einem Powershell-Skript aus dem Windows Active Directory erstellt.

Ich habe auch die Linienenden von CR LF zu LF, aber Sie erwähnten, dass Sie dies bereits versucht haben, auch. Also ich denke, es ist ein Character-Coding-Problem.

+0

Ändern der Codierung und Zeilenenden hat keinen Unterschied für mich gemacht :( – Toby

2

Ich habe gerade das gleiche Problem wie hier beschrieben und es stellte sich heraus, dass durch Erstellen einer neuen TXT-Datei nur in notepad ++ (die ursprüngliche Autoren-Datei wurde durch einen Powershell-Befehl ich an anderer Stelle gefunden) und kopieren Sie den Inhalt der ursprünglichen Datei in die neue TXT-Datei, der Abruf funktioniert dann.

Stellt sich heraus, die ursprüngliche Datei wurde als UCS-2 Little Endian (wie oben) codiert, aber die Standardcodierung von UTF-8 funktioniert. Ich musste die Zeilenenden nicht ändern.

4

stolperte über diese Frage und beendet das Problem zu lösen, indem sie die Byte-Reihenfolge-Marke aus der authors.txt Datei in UTF-8-Datei kodiert Strippen, wodurch Linux sie als Klartext ASCII-Datei anstelle von UTF-8 .

Da meine Datei unter Windows als Powershell-Ausgabe gestartet wurde, ist die allgemeinere richtige Antwort, dass einfacher Text niemals einfacher Text ist, was die Antwort von Lazy Badger am besten macht, da er das Überschreiben dieser Unterschiede vermeidet.

+0

Dies ist keine Antwort auf die Frage: Um einen Autor zu kritisieren oder um Klärung zu bitten, hinterlasse einen Kommentar unter seinem Beitrag - du kannst deine eigenen Beiträge jederzeit kommentieren und sobald du genügend [Reputation] hast (http://stackoverflow.com/help/whats-reputation) Sie können [jeden Beitrag kommentieren] (http://stackoverflow.com/help/privileges/comment). – AdamMc331

+0

Ich werde dies fragen - Ich habe meine Antwort eingereicht, weil nicht jeder leicht die ursprüngliche Datei neu generieren kann, und es Vielleicht ist es nützlich zu wissen, WARUM die Antwort von Lazy Badgers funktioniert. Ist das nicht genug für eine separate Antwort? – user4388759

+0

Ich verstehe, woher du kommst, aber als ich das in der Review-Queue gesehen habe (jemand anders hat es markiert) denke, dass sie es getan haben deshalb, weil deine Antwort auch als Kommentar betrachtet werden könnte, da du sogar eine andere Antwort vorschlägst und empfiehlst. Wenn ich es wäre, hätte ich (vorausgesetzt, ich hätte den Vertreter kommentieren) eine andere Antwort kommentiert oder sogar die Frage, was Sie getan haben, was für Sie funktioniert hat. – AdamMc331

Verwandte Themen