2016-12-06 6 views
-1

Я пытаюсь сделать git svn-клон очень большого SVN-репо. Я сделал более ранние миграции с использованием git svn clone с полным разветвлением, тегами и историей, и все прошло хорошо. Но на этот раз сценарий после запуска в течение довольно долгого времени выдает ошибку: libsvn: Out of memory - завершающее приложение.18 [main] perl 13884 cygwin_exception :: open_stackdumpfile: Сброс стека стека на perl.exe.stackdump Я исследовал всюду, но не мог найти что-нибудь связанное с this.If кто-нибудь сталкивались подобная ошибка, я бы признателен за любые предложенияПеренос большого SVN-репо на Git failing Out of Memory Exception

+0

Это одноразовое преобразование, и вы используете только Git впоследствии или хотите передать обратно SVN из своего клона Git? – Vampire

+0

Это одноразовое преобразование, и как только вещи перемещаются в Git, мы будем использовать Git и прекратить использование SVN – Anshul

ответ

1

git-svn İŞ не правильного инструмент для преобразования разовых хранилищ. Это отличный инструмент, если вы хотите использовать Git как интерфейс для существующего сервера SVN, но для одноразовых конверсий вы должны использовать , Ошибка OOM.

Есть инструменты pleny под названием svn2git, вероятно, лучший из них - KDE от https://github.com/svn-all-fast-export/svn2git. Я настоятельно рекомендую использовать этот инструмент svn2git. Это лучшее, что я знаю, доступный там, и он очень гибкий в том, что вы можете делать с его файлами правил.

Если вы не 100% об истории своего репозитория, svneverever от http://blog.hartwork.org/?p=763 - отличный инструмент для исследования истории хранилища SVN при переносе его на Git.


Даже если git-svn (или в случае неправильного svn2git) легче начать, вот некоторые другие причины, почему с помощью KDE svn2git вместо git-svn превосходит, кроме своей гибкости:

  • история перестраивается намного лучше и чище по svn2git (если используется правильный), это особенно относится к более сложным историям с ветвями и слияниями и т. Д.
  • теги являются реальными тегами, а не отрубями ches в Git
  • с git-svn теги содержат дополнительную пустую фиксацию, которая также делает их не частью ветвей, поэтому нормальный fetch не получит их до тех пор, пока вы не дадите --tags команде, поскольку по умолчанию используются только теги, указывающие на извлеченные ветви, тоже. С правильными тегами svn2git, где они принадлежат
  • если вы изменили макет в SVN вы можете легко настроить это с svn2git, с git-svn вы потеряете историю в конце концов
  • с svn2git вы можете также разделить один репозиторий SVN на нескольких хранилищ Git легко
  • или объединить несколько репозиториев SVN в том же корне SVN в один репозиторий Git легко
  • преобразование является Gazillion раз быстрее с правильным svn2git чем с git-svn

Существует много причин, по которым git-svn хуже, и KDE svn2git является превосходным. :-)

 Смежные вопросы

  • Нет связанных вопросов^_^