git-svn
является не правильным инструментом для одноразовых преобразований репозиториев или частей репозитория. Это отличный инструмент, если вы хотите использовать Git как интерфейс для существующего сервера SVN, но для одноразовых конверсий вы должны не использовать git-svn
, но svn2git
, который гораздо более подходит для этого прецедента.
С вашего скриншота Я вижу, что вы, скорее всего, использовали инструмент, основанный на git-svn
, например, e. г. nirvdrum svn2git
, так как эти «ветви тегов» являются одним из недостатков использования git-svn
.
Есть много инструментов под названием svn2git
, вероятно, лучший из них - это KDE один от https://github.com/svn-all-fast-export/svn2git. Я настоятельно рекомендую использовать этот инструмент svn2git
. Это лучшее, что я знаю, доступный там, и он очень гибкий в том, что вы можете делать с его файлами правил.
Вы легко сможете настроить файл правил svn2git
s, чтобы получить результат, который вы хотите получить в своей истории, либо с интегрированием всех субрепозиций SVN в один репозиторий Git, либо с разбивкой проектов с SVN на несколько независимых хранилищ Git.
Если вы не 100% об истории своего репозитория, svneverever
от http://blog.hartwork.org/?p=763 - отличный инструмент для изучения истории хранилища SVN при переносе его на Git.
Даже если git-svn
легче начать, вот некоторые другие причины, почему с помощью KDE svn2git
вместо git-svn
превосходит, кроме своей гибкости:
- история перестраивается гораздо лучше и чище по
svn2git
(если используется правильный), это особенно относится к более сложным историям с ветвями и слияниями и т. д.
- теги являются реальными тегами, а не ветвями в Git
- с
git-svn
теги содержат дополнительную пустую фиксацию, которая также делает их не частью ветвей, поэтому нормальный fetch
не получит их до тех пор, пока вы не дадите команду --tags
, так как по умолчанию выбираются только теги, указывающие на извлеченные ветви. С правильными тегами svn2git, где они принадлежат
- если вы изменили макет в SVN вы можете легко настроить это с
svn2git
, с git-svn
вы потеряете историю в конце концов
- с
svn2git
вы можете также разделить один репозиторий SVN на нескольких хранилищ Git легко
- или объединить несколько репозиториев SVN в том же корне SVN в один репозиторий Git легко
- преобразование является Gazillion раз быстрее с правильным
svn2git
чем с git-svn
Существует много причин, по которым git-svn
хуже, и KDE svn2git
является превосходным. :-)
Все работает отлично! У вас есть идея нажимать новые теги на голый репозиторий? – barbuslex
Я обновил ответ. – axiac
Спасибо, он отлично работает – barbuslex