2017-01-13 15 views
1

Я пытаюсь преобразовать некоторые svn-repo's в git (Atlassian Stash), используя this tutorial самого Atlassian. Когда я запускаю командуGit: ОШИБКА: Невозможно определить версию

java -jar svn-migration-scripts.jar verify 

я получаю следующий результат:

svn-migration-scripts: using version 0.1.56bbc7f 
Git: ERROR: Unable to determine version. 
Subversion: using version 1.9.3 

Но у меня уже есть рабочая версия мерзавца:

git --version 
git version 2.8.0.windows.1 

Я сделал некоторые прибегая к помощи, но никто, кажется, есть ответ на эту проблему, поэтому я подумал, что попробую здесь. Благодаря!

+0

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

+0

Вы выполнили шаг к 'SET LANG = C', если есть проблема с определением версии? – crashmstr

+0

Я выполнил шаг SET LANG = C, но не успел. И я хочу использовать git впоследствии вместо svn (мне все равно придется использовать svn для других проектов tho). –

ответ

1

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

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

Если вы не 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 является превосходным. :-)

+0

Большое спасибо за этот ясный и полный ответ! Я проверю это и вернусь к вам о результате (нужно сделать это между моей другой работой, чтобы это могло занять некоторое время). –

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

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