Каков формат файла авторов для git svn, особенно для специальных символов, таких как обратный слеш или подчеркивание? - PullRequest
15 голосов
/ 29 января 2010

Я пытаюсь клонировать Papercut, эмулятор сервера smtp

Я получаю список авторов SVN с svn log -q https://papercut.svn.codeplex.com/svn | grep -e '^r'| awk 'BEGIN {FS="|"};{print $2}'|sort|uniq, который дает мне

RNO\_MCLWEB
SND\krobertson_cp

Я создал файл author.txt в формате SVN_User = UserName <Email>, но при запуске

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

он жалуется на "Автор: RNO \ _MCLWEB не определен в файле author.txt"

Я пытался поставить \ перед '\' и '_', чтобы попытаться избежать их, и добавив кавычки вокруг имени, но ни одна из них не сработала.

Не могу найти лучшего описания формата файла author.txt, чем SVN_User = UserName <Email>

Ответы [ 3 ]

25 голосов
/ 29 января 2010

Я ненавижу быть "тем парнем", но я просто попробовал, и у меня все получилось. Вот копия файла авторов, который я использовал:

RNO\_MCLWEB = Ronald McDonald <dude@example.com>
SND\krobertson_cp = Some Guy <someone@example.com>

Однако я использовал метод, отличный от того, который вы использовали для генерации имен авторов, следуя этим указаниям . Мое конкретное заклинание было:

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

Я также использую Git 1.6.6.1 (сомневаюсь, что это имеет значение, но вы никогда не знаете).

Я заметил, что когда я использовал ваш конвейер для получения авторов SVN, в результирующем файле перед их именами пользователей SVN были пробелы (т. Е. В столбце 1 в каждой строке) Не знаю, имеет ли это значение или нет.

14 голосов
/ 24 января 2012

У меня была такая же проблема, но с пользователем apache.В файле авторов есть строка, подобная этой.

apache = Apache

или

apache = Apache <>

Но когда я установил ее на

apache = Apache <noreply@something.com>

Мой репо начал клонироваться обычно.Пожалуйста, убедитесь, что вы правильно указали все имена авторов и адрес электронной почты, следуя формату

svn_user_name = JustNameInGit <obligatory@email.com>

Все поля обязательны для заполнения !!!

3 голосов
/ 08 мая 2013

Я использовал следующее, что помогает пропустить сообщения со словами типа «авторизация» в них

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