git-svn
является не правильным инструментом для одноразовых преобразований репозиториев или частей репозитория. Это отличный инструмент, если вы хотите использовать Git как интерфейс для существующего сервера SVN, но для одноразовых конверсий вы должны не использовать git-svn
, но svn2git
, который гораздо более подходит для этого прецедента.
svn2git
Вы используете на основе git-svn
и преодолеваете некоторые из недостатков git-svn
, но большинство из них все еще присутствует.
Есть много инструментов под названием svn2git
, вероятно, лучший из них - это KDE один от https://github.com/svn-all-fast-export/svn2git. Я настоятельно рекомендую использовать этот инструмент svn2git
. Это лучшее, что я знаю, доступный там, и он очень гибкий в том, что вы можете делать с его файлами правил.
Вы легко сможете настроить файл правил svn2git
s для получения нужного результата.
Если вы не 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
является превосходным. :-)
Постараюсь взглянуть. Я клонировал и устанавливал предпосылки, но часть линейки кажется немного сложной. Я могу использовать svn, который находится на другом сервере? Итак, используя URL-адрес? – DenCowboy
Нет, вам нужен доступ к репозиторию SVN в файловой системе. Либо выполните преобразование на сервере SVN, либо если у вас есть доступ к файловой системе (например, через FTP, SFTP, SCP, SSH, ...) в каталог репозитория или если не использовать метод, описанный в документах https: // github.com/hartwork/svneverever, чтобы получить локальную копию. – Vampire
Файлы правил достаточно просты в написании, особенно если у вас нет особых случаев/макетов. Примеры можно найти в наборах правил KDE. – Vampire