Каков формат файла авторов для git svn, особенно для специальных символов, таких как обратная косая черта или подчеркивание?

Я пытаюсь клонировать 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

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

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

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

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

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

Ответ 1

Я ненавижу быть "этим парнем", но я просто попробовал, и это сработало хорошо для меня. Здесь копия файла авторов, который я использовал:

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

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

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

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

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

Ответ 2

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

apache = Apache

или

apache = Apache <>

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

apache = Apache <[email protected]>

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

svn_user_name = JustNameInGit <[email protected]>

Каждое поле обязательно!

Ответ 3

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

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