Автор не определен при импорте репозитория SVN в Git

Я пытаюсь импортировать наш SVN-репозиторий в Git. Когда я запускаю либо эту команду:

git svn --authors-file=/path/to/authors --trunk=trunk clone https://my-repo/project .

или эта команда:

svn2git https://my-repo/project --no-minimize-url -v --authors /path/to/authors

Оба возвращают эту ошибку:

Author: patrick  not defined in /path/to/authors file

.. но насколько я могу судить, нет ничего плохого в файле моих авторов:

$ grep patrick /path/to/authors
patrick = Patrick <[email protected]>

Эта ошибка не доходит до версии 8700, поэтому она должна правильно захватить имена других авторов.

Что здесь может быть? Спасибо.

Ответы

Ответ 1

Были две проблемы:

Я решил первым, назначив уникальные адреса электронной почты каждому автору.

Кроме того, имя пользователя было "patrick". Я понятия не имею, как это произошло, но с помощью svnadmin я смог изменить все экземпляры этого псевдонима только на "patrick".

Ответ 2

У меня была такая же проблема при попытке выполнить это в Windows. Оказалось, что кодировка файла, который я сохранил авторам, была установлена ​​в UTF-8 вместо UTF-8 без спецификации. Поскольку версия "с BOM" добавляет некоторые дополнительные байты в начало файла, первый автор в списке не был найден.

Ответ 3

У меня была такая же проблема. Формат authors.txt строг с формой

svn name = user name &#8249;email&#8250;

как в:

cruise-control = Cruise Control &#8249;[email protected]&#8250;
user1 = User1 Lastname1 &#8249;[email protected]&#8250;
user2 = User2 Lastname2 &#8249;[email protected]&#8250;

Например, этот формат не будет работать:

user1 = [email protected]

Ответ 4

Я видел ту же ошибку, но по другой причине. Я отправлю свое решение здесь как "ответ", так как это может быть ответ другим людям, которые находят этот вопрос (даже если это не решение/ответ на проблему/вопрос OP):

Я запускал svn log из проверки проекта. Но я проверил только trunk, поэтому были включены только авторы, которые совершили изменения в багажнике. Это, очевидно, большинство авторов, поэтому клон будет работать в течение долгого времени (более 90 минут), прежде чем он сработает с ошибкой.

Как проверять весь весь корень проекта не был жизнеспособным вариантом (он имеет более 500 веток и тегов, а дамп - более 600 ГБ), я обнаружил, что могу просто запустить svn log на удаленном репо:

svn log -q svn://server/path-to-project-root

Фактическая команда также сделала некоторую фильтрацию и форматирование вывода:

svn log -q svn://server-url/path-to-project-root | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > authors-transform.txt

Ответ 5

Найдите все пустые пространства в начале имен авторов и удалите пробелы. Если это не помогает, попробуйте переместить имя автора в начало файла.