Если вы создаете новое пустое репозиторий SVN, можете ли вы вставить все коммиты из git-svn прямо в репо? (я не использовал git или git-svn, но это то, что я сделал бы с одним из моих репозиториев hg, если мне нужно было поместить его в репозиторий svn)
Редактировать: мне удалось заставить это работать с ручным перебазированием через Mercurial. Единственное, что кажется особенным, это ручная перебазировка вместо автоматической перебазировки svn. Вы можете попробовать это в git-svn перед тем, как добавить в смесь Mercurial.
- Создать новый SVN Repo:
svnadmin create targetSVN
- Сделайте начальную фиксацию на новом репозитории SVN:
svn co file://targetSVN svnCopy
cd svnCopy
touch test
svn add test; svn commit -m "Initial Import"
- Проверьте репо через
hg
:hg clone file://targetSVN hgCopy; cd hgCopy
- Извлеките изменения из git (через
hg-git
):hg pull git://yourrepo.git
- Ручная перебазировка:
hg rebase -s tip -d 0
(0
должен быть исходным SVN-коммитом иtip
должен быть главой материала, который вы извлекли из git. Убедитесь, что наборы изменений git являются линейными (без слияний!). Заменитеtip
фактический номер набора изменений головки git (найден черезhg heads
) при необходимости). Примите все удаленные изменения, когда он спрашивает о конфликтах. hg push
пока все изменения в репозитории svn. Это выдвигает 1 набор изменений за раз.