SVN2GIT - нет связанных метаданных коммита из SVN, пропуск

Я получаю предупреждение "Нет связанных метаданных коммита из SVN, пропуск"

Я использую инструмент https://github.com/nirvdrum/svn2git. Что означает приведенное выше сообщение? Я пытаюсь перенести всю историю из svn в git.


person Springhills    schedule 29.12.2017    source источник


Ответы (1)


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

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

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

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

Вы сможете легко настроить файл правил svn2gits для получения желаемого результата из вашего текущего макета SVN, включая любые сложные истории, подобные вашей, которые могут существовать, и включая создание нескольких репозиториев Git из одного репозитория SVN или объединение разных репозиториев SVN в один Git. репо чисто за один прогон, если хотите.

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


Несмотря на то, что git-svn или nirvdrum svn2git легче начать, вот еще несколько причин, по которым использование KDE svn2git вместо git-svn лучше, помимо его гибкости:

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

Видите ли, есть много причин, по которым git-svn хуже, а KDE svn2git лучше. :-)

person Vampire    schedule 04.01.2018
comment
Я на самом деле использую svn2git. - person Springhills; 23.03.2018
comment
Копировать и вставлять этот ответ везде действительно непродуктивно. Тем более для этого вопроса это совершенно неактуально. - person Étienne; 18.02.2020
comment
Читаю это утверждение в третий раз подряд, используя google, чтобы найти решение. stackoverflow.com/a/39662669/577052 stackoverflow.com/a/38304001/577052 stackoverflow.com/a/48184869/577052 < href="https://stackoverflow.com/a/37987245/577052">stackoverflow.com/a/37987245/577052 - person Bernhard Döbler; 05.08.2020