Я получаю предупреждение "Нет связанных метаданных коммита из SVN, пропуск"
Я использую инструмент https://github.com/nirvdrum/svn2git. Что означает приведенное выше сообщение? Я пытаюсь перенести всю историю из svn в git.
Я получаю предупреждение "Нет связанных метаданных коммита из SVN, пропуск"
Я использую инструмент https://github.com/nirvdrum/svn2git. Что означает приведенное выше сообщение? Я пытаюсь перенести всю историю из svn в git.
Я не уверен, что означает это предупреждение, но я бы рекомендовал не использовать этот инструмент.
Для однократной миграции git-svn
не является подходящим инструментом для преобразования репозиториев или частей репозиториев. Это отличный инструмент, если вы хотите использовать Git в качестве внешнего интерфейса для существующего сервера SVN, но для разовых преобразований вы должны не использовать git-svn
, а svn2git
, который гораздо больше подходит для этого варианта использования. .
Существует множество инструментов под названием svn2git
, вероятно, лучший из них — это KDE с https://github.com/svn-all-fast-export/svn2git. Я настоятельно рекомендую использовать этот инструмент svn2git
. Это лучшее из того, что я знаю, и оно очень гибкое в том, что вы можете делать с его файлами правил.
Используемый вами nirvdrum svn2git
эффективно вызывает git-svn
, а затем выполняет некоторую постобработку, чтобы преодолеть некоторые недостатки git-svn
, но он все еще страдает от некоторых из них.
Вы сможете легко настроить файл правил svn2git
s для получения желаемого результата из вашего текущего макета 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-svn
теги содержат дополнительную пустую фиксацию, которая также делает их не частью ветвей, поэтому обычный fetch
не получит их, пока вы не дадите --tags
команде, поскольку по умолчанию также извлекаются только теги, указывающие на извлеченные ветки. С правильными тегами svn2git они там, где им местоsvn2git
, с git-svn
вы в конечном итоге потеряете историюsvn2git
вы также можете легко разделить один репозиторий SVN на несколько репозиториев Git.svn2git
, чем с git-svn
Видите ли, есть много причин, по которым git-svn
хуже, а KDE svn2git
лучше. :-)