2010-01-29 12 views
12

Próbuję sklonować Papercut, an smtp server emulatorJaki jest format pliku autorów dla git svn, w szczególności dla znaków specjalnych, takich jak ukośnik odwrócony lub podkreślenie?

Dostaję listy autorów SVN z svn log -q https://papercut.svn.codeplex.com/svn | grep -e '^r'| awk 'BEGIN {FS="|"};{print $2}'|sort|uniq który daje mi

RNO\_MCLWEB 
SND\krobertson_cp 

I stworzył authors.txt z formatem SVN_User = UserName <Email>, ale gdy uruchamiam

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

narzeka "Autor: RNO \ _MCLWEB nie określona w pliku authors.txt"

Próbowałem już wstawić \ przed "\" i "_", aby spróbować uciec przed nimi i dodawać cytaty wokół nazwy, ale nic nie zadziałało.

nie mogę znaleźć nic lepszego opis formatu pliku authors.txt niż SVN_User = UserName <Email>

+0

typu 'git svn clone -help' i szukać opcją' -a' na dobry opis ' plik authors.txt. –

Odpowiedz

19

Nienawidzę być „ten facet”, ale po prostu spróbowaliśmy i to działało dobrze dla mnie. Oto kopia pliku autorów użyłem:

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

zrobiłem jednak użyć nieco inny sposób niż ty wygenerować nazwiska autorów, po these directions. Moja szczególna inkantacja była:

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

Używam również Git 1.6.6.1 (wątpliwość, która robi różnicę, ale nigdy nie wiadomo).

Zauważyłem, że kiedy użyłem twojego potoku, aby uzyskać autorów SVN, w wynikowym pliku były spacje przed swoimi nazwami SVN (tj. W każdej linii było spacja w kolumnie 1). Nie wiem, czy to robi różnicę, czy nie.

+0

Po raz pierwszy zrobiłem plik authors.txt, nie wstawiłem do e-maila ciągu takiego jak [email protected], tylko Domyślam się, że to był problem, ponieważ plik authors.txt z tekstem, który pokazałeś, zrobił klona bez problemu (git 1.6.5.1). Myślałem, że próbowałem z odpowiednimi adresami e-mail, ale najwyraźniej nie. W każdym razie, dzięki. – jasonpenny

+0

Regex jest niepoprawny - musi pasować więcej niż 1 znak. Naprawiono: '' s /.*>(.*?)<.*/$ 1 =/'' – CoffeeMonster

10

Miałem ten sam problem, ale z apache użytkownika. W pliku autorów miała taką linię.

apache = Apache 

lub

apache = Apache <> 

Ale kiedy ustawić go

apache = Apache <[email protected]> 

Moje repo zaczął klonować normalnie. Proszę mieć pewność, że wszystko, co autorzy ustawić nazwiska i e-maila prawidłowo, w formacie obserwacji

svn_user_name = JustNameInGit <[email protected]> 

Każde pole jest obowiązkowa !!!

+0

Zobacz [to pytanie] (http://stackoverflow.com/q/11579311/168775) dla podobnej dyskusji. – eykanal

+0

Zauważenie, że każde pole jest obowiązkowe, pomogło mi. Link z eykanal sugeruje, że nie jest to prawdą w przypadku, gdy był połączony, a nie podczas importu SVN. – vmrob

0

użyłem następujących składników, które pomagają przejść wiadomości z takich słów jak „zezwolenie” w nich

svn log --xml | grep /author | sort -u | perl -pe 's/.>(.?)<./$1 = /' > users.txt 
Powiązane problemy