Винсент Данен упоминает параметр -A при использовании git svn :
Таким образом, используя ~ / git в качестве каталога верхнего уровня для репозиториев Git [...]
создайте файлhors.txt.
Этот файл отобразит имена коммиттеров Subversion авторам Git, что приведет к правильной истории импортированного репозитория Subversion.
Для проектов с небольшим количеством коммиттеров это довольно просто. Для более крупных проектов с большим количеством участников это может занять некоторое время. Синтаксис файла будет:
user = Joe User <user@example.com>
vdanen = Vincent Danen <vdanen@somewhere.com>
Краткое имя - это имя коммиттера для 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 <user@example.com>
Если указан этот параметр и git-svn
встречает имя коммиттера SVN, которого нет в файле авторов, git-svn прервет операцию.
Затем пользователь должен будет добавить соответствующую запись.
Повторное выполнение предыдущей команды git-svn
после изменения файла авторов должно продолжить работу.
config key: svn.authorsfile
Это должно работать для всех git-svn
команд, включая git-svn dcommit
(когда вы нажимаете на SVN) (Примечание: хотя я не проверял его напрямую).
Мохаммед Гамаль сообщает (в комментариях), что работает, но без опции --no-metadata
.