Автор не определен при импорте репозитория 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 ‹email›
как в:
cruise-control = Cruise Control ‹[email protected]›
user1 = User1 Lastname1 ‹[email protected]›
user2 = User2 Lastname2 ‹[email protected]›
Например, этот формат не будет работать:
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
Найдите все пустые пространства в начале имен авторов и удалите пробелы. Если это не помогает, попробуйте переместить имя автора в начало файла.