Экспорт репозитория git в svn - PullRequest
13 голосов
/ 09 августа 2010

клонировать svn-репозиторий в git легко с git-svn. Однако мне нужно сделать это наоборот. У меня есть git-репозиторий, и я хочу импортировать его в пустой каталог (кроме папок ствола, веток и тегов), хранящий всю информацию о коммите.

Я записал git-svn-клон svn-репо, вытащил мастера git и принял решение. Тем не менее, единственный коммит, который у меня есть в SVN, это тот, который говорит "слито с мерзавца"

Я также попробовал другой способ: клонировал репозиторий git и вызвал git svn init, но git продолжает говорить: «Невозможно определить восходящую информацию SVN из истории HEAD».

Возможно ли как-нибудь создать svn-репозиторий из git?

Ура, Michael

Ответы [ 2 ]

12 голосов
/ 06 января 2011

Вот мой рецепт публикации git-репо через svn:

svn mkdir --parents http://host/path/to/repo/{trunk,tags,branches} \
    -m "Standard layout for $project"
git svn init -s http://host/path/to/repo/
git svn fetch
git rebase trunk master
git svn dcommit

Subversion не сохранит время коммитов или авторство.Да поможет тебе Бог, если ты использовал ветки.

6 голосов
/ 09 августа 2010

при извлечении основной ветки из другого репозитория создает коммит слияния, потому что нет общей истории.

вместо этого следует использовать git pull --rebase (который изменит идентификаторы коммитов, так как он воссоздает коммиты), затем dcommit


Вы также можете попробовать следующее:

сначала проверьте исходную версию с помощью svn (просто создавая эти ветви, теги, папки с транками и фиксируя), затем создайте клон git svn (git svn -s clone svn://…)

затем введите следующие команды:

# create a ref to your "svn" commit
git checkout -b svn
# get all your "git" commits
git fetch $your_remote_git_repo
# create a ref to your "git" commit
git branch master FETCH_HEAD
# rebase the rest your git commits
git rebase svn master
# commit to svn!
git svn dcommit

edit вишневый выбор был необходим только потому, что в моем быстро настроенном хранилище git были только пустые коммиты

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...