У меня есть репозиторий git, и моя компания назначила мне пустую репозицию svn для хранения моего кода. Так что я хотел бы просто добавить, что svn repo как удаленный от моего существующего репозитория git и затем нажмите на него.
Теперь все учебники git -svn начинаются с "сначала клонировать репозиторий svn, а затем добавлять код". Это не работает для меня, поскольку у меня уже есть существующий репозиторий git.
Я также нашел несколько руководств по импорту ветвей svn в git repo, но это также не то, что мне нужно, мне нужно импортировать репозиторий git в репозиторий svn.
Я попробовал просто сделать git svn init http://remote-repo
, а затем git svn rebase
, но это закончилось тем, что "Не удалось определить информацию SVN вверх по рабочему дереву".
Я думаю, этот парень имел ту же проблему, но у него не было ответов. Любые идеи о том, как это сделать?
изменить:
Я сделал несколько дополнительных упражнений, но безуспешно. Я перенес историю git в историю svn и сделал rebase, но это не устранило проблему. Странно. Вот что я сделал.
После git svn init
я сделал:
git svn fetch # so now I see the svn history in my git repo - I have two unconnected histories in my repo
git checkout svn-git #checking out svn remote
git checkout -b voracle_svn # putting content of the remote to a branch
Затем в gitk я создал ветвь с именем "graft_child", указывающую на мою первоначальную фиксацию git (начало моей истории git) и перенесенную на HEAD ветки svn:
git checkout graft_child # checking out the start of git repo
git reset --mixed voracle_svn #positioning myself to the HEAD of svn remote
git commit -am "Grafting git repo onto svn" #as the message said
Затем я добавил идентификаторы SHA1 для дочернего и родительского коммитов в .git/info/grafts и resetarted gitk. Gitk теперь показывает одну историю (хотя и с испорченными датами), трансплантат был успешным. Затем я пересобил ветвь svn:
git checkout voracle_svn # checking out the branch wich points to the HEAD of svn repo
git rebase master
Это успешно переадресовано voracle_svn для управления, что означает, что я должен был бы перенаправить свое репо на SVN. Или так я думал, потому что
git svn rebase
снова дал мне "Невозможно определить информацию SVN вверх по истории рабочих деревьев".
Теперь у меня действительно нет идей: - (