Ответ 1
Vincent Danen упоминает параметр -A при использовании git svn:
Таким образом, используя ~/ git в качестве каталога верхнего уровня для git репозиториев
[...]
, создайте файл authors.txt.
Этот файл отобразит имена коммандеров Subversion на авторов git, что приведет к правильной истории импортированного репозитория Subversion.
Для проектов с небольшим количеством коммиттеров это довольно просто. Для крупных проектов с большим количеством коммиттеров это может занять некоторое время. Синтаксисом файла будет:
user = Joe User <[email protected]>
vdanen = Vincent Danen <[email protected]>
Сокращенное имя - это имя коммиттера для Subversion, тогда как длинная форма - полное имя пользователя и адрес электронной почты, используемые Git.
Последний шаг - клонировать репозиторий Subversion, который создает локальный репозиторий git на его основе. Предполагая, что ваш репозиторий использует стандарты /trunk,/tags и/branch, используйте:
# git svn clone --no-metadata -A authors.txt -t tags -b branches -T trunk https://svn.example.com/svn/repo
-A<filename>
--authors-file=<filename>
Синтаксис совместим с файлом, используемым git -cvsimport:
loginname = Joe User <[email protected]>
Если этот параметр указан и
git-svn
встречает имя коммиттера SVN, которое не существует в файле author, git -svn прекратит работу.
Затем пользователю необходимо добавить соответствующую запись.
Повторное выполнение предыдущей командыgit-svn
после изменения файла author-file должно продолжаться.
config key: svn.authorsfile
Это должно работать для всех команд git-svn
, включая git-svn dcommit
(при нажатии на SVN) (Примечание: я не тестировал его напрямую, хотя).
Мохаммед Гамал сообщает (в комментариях) он работает, но без опции --no-metadata
.