2017-02-06 6 views
0

Я попробовал svn2git, чтобы протестировать переход из svn в git. Моя команда выглядит следующим образом:svn2git дает «пустой» каталог

yes $PASS | svn2git https://my-svn.net/project/ --username $USERNAME 

Я выполнить эту команду на Ubuntu 14.04, где установлен мерзавец. Я выполняю это в /home/myuser/svn2git/. После некоторого ожидания выполнения команд конец:

... 
    A src/xx 
    A src/xx 
    A src/xx 
    A src/xx 
W: Killed 

Когда я выполняю ls -la в этом каталоге не показывает ничего. Но du -sh говорит мне, что в каталоге находится 230 МБ.

Как я могу просмотреть мои конвертированные папки git?

ответ

0

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

+0

Постараюсь взглянуть. Я клонировал и устанавливал предпосылки, но часть линейки кажется немного сложной. Я могу использовать svn, который находится на другом сервере? Итак, используя URL-адрес? – DenCowboy

+0

Нет, вам нужен доступ к репозиторию SVN в файловой системе. Либо выполните преобразование на сервере SVN, либо если у вас есть доступ к файловой системе (например, через FTP, SFTP, SCP, SSH, ...) в каталог репозитория или если не использовать метод, описанный в документах https: // github.com/hartwork/svneverever, чтобы получить локальную копию. – Vampire

+0

Файлы правил достаточно просты в написании, особенно если у вас нет особых случаев/макетов. Примеры можно найти в наборах правил KDE. – Vampire

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