2010-01-29 5 views
12

Ich versuche Papercut, an smtp server emulatorWas ist das Format eines Autors für git svn-Datei, die speziell für Sonderzeichen wie Backslash oder unterstreichen?

Ich erhalte die Liste der SVN Autoren mit svn log -q https://papercut.svn.codeplex.com/svn | grep -e '^r'| awk 'BEGIN {FS="|"};{print $2}'|sort|uniq klonen, die mich

RNO\_MCLWEB 
SND\krobertson_cp 

Ich habe ein authors.txt mit dem SVN_User = UserName <Email> Format zu geben, aber wenn ich laufe

git svn clone --no-metadata -A authors.txt https://papercut.svn.codeplex.com/svn papercut 

es klagt "Autor: RNO \ _MCLWEB nicht in authors.txt Datei definiert"

Ich habe versucht, mit einem \ vor dem "\" und "_" zu versuchen, ihnen zu entkommen, und fügen Sie Zitate um den Namen, aber keiner funktionierte.

Ich kann keine bessere Beschreibung des authors.txt Dateiformates findet als SVN_User = UserName <Email>

+0

Typ' git svn Klon -help' und schauen Nachrichten mit Wörtern wie ‚Genehmigung‘ in ihnen überspringen hilft ' authors.txt' Datei. –

Antwort

19

Ich hasse „dieser Typ“ zu sein, aber ich habe es nur einen Versuch und es funktionierte gut für mich. Hier ist die Kopie der Autoren Datei-I verwendet:

RNO\_MCLWEB = Ronald McDonald <[email protected]> 
SND\krobertson_cp = Some Guy <[email protected]> 

Ich habe verwenden jedoch eine etwas andere Methode, als Sie Autorennamen haben zu erzeugen, folgende these directions. Meine konkrete Beschwörung war:

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

Ich bin auch Git 1.6.6.1 mit (Zweifel, die einen Unterschied macht, aber man weiß ja nie).

Ich habe bemerkt, dass, wenn ich Ihre Pipeline verwendet, um die SVN Autoren zu erhalten, gab es Leerzeichen vor ihren SVN Benutzernamen in der resultierenden Datei (d. H. Es gab ein Leerzeichen in Spalte 1 auf jeder Zeile). Ich weiß nicht, ob das einen Unterschied macht oder nicht.

+0

Das erste Mal, dass ich die authors.txt gemacht, habe ich nicht eine Zeichenfolge wie [email protected] für die E-Mail setzt, nur Ich denke, dass das Problem war, da ein authors.txt mit dem Text, den Sie taten Klon zeigten ohne ein Problem (Git 1.6.5.1). Ich dachte, ich hätte es mit richtigen E-Mail-Adressen versucht, aber anscheinend nicht. Wie auch immer, danke. – jasonpenny

+0

Regex ist falsch - es muss mehr als 1 Zeichen entsprechen. Behoben: 's /.*>(.*?)<.*/$ 1 =/'' – CoffeeMonster

10

hatte ich gleiches Problem, aber mit Apache-Benutzer. In Autoren-Datei eine Zeile wie diese.

apache = Apache 

oder

apache = Apache <> 

Aber wenn ich es auf

gesetzt
apache = Apache <[email protected]> 

Mein Repo begann normaly geklont. Bitte stellen Sie sicher, dass Sie alles, was Sie Autoren Namen und E-Mail korrekt eingestellt, mit Follow-Format

svn_user_name = JustNameInGit <[email protected]> 

Jedes Feld ist obligatorisch !!!

+0

Siehe [diese Frage] (http://Stackoverflow.com/q/11579311/168775) für eine ähnliche Diskussion. – eykanal

+0

Ich merkte, dass jedes Feld obligatorisch ist. Die Verbindung von Eykanal bedeutet, dass dies nicht der Fall ist, wenn er verlinkt ist, nicht während eines SVN-Imports. – vmrob

0

benutzte ich die folgenden, die

für die `-a` Option für eine gute Beschreibung über die
svn log --xml | grep /author | sort -u | perl -pe 's/.>(.?)<./$1 = /' > users.txt