2012-05-16 4 views
1

Я пытаюсь клонировать большой репозиторий SVN, чтобы выполнить миграцию в git, однако операция клонирования завершается с ошибкой примерно на треть пути, когда она попадает на транзакцию SVN, которая создает каталог ветвей, но не добавляет к нему файлы (файлы добавляются в другой SVN-коммит).git svn clone встречает ошибку при создании пустой ветви.

Ошибка:

Filesystem не имеет пункт: Рабочая копия путь «/ филиалы/secretName» не существует в хранилище на /usr/local/Cellar/git/1.7.10.1/libexec/git-core/git-svn line 5669

Я предполагаю, что это потому, что git не отслеживает пустые каталоги. Как я могу пройти мимо этого?

EDIT:

http://gitorious.org/svn2git

выглядит многообещающим, возможно, не было времени, чтобы играть с ним в течение нескольких дней, хотя.

ответ

0

Разве вы не забыли - вариант отсрочки?

Попробуйте SubGit для миграции. Это не git-svn-based и переводит больше концепций SVN в Git (например, ветви, теги, игнорирование и другие).

+0

Я определил каталог ветвей и каталог соединительных линий, и нет тегов. На самом деле уже было много филиалов, прежде чем он дошел до этой проблематичной фиксации. Я думаю, проблема заключается в том, что эта фиксация «создает» ветвь, добавляя только пустой каталог. Git не может создать ветвь, потому что на стороне git пустая директория игнорируется. – linuxfreakus

+0

Также в соответствии с http://subgit.com/documentation/lost.html Каталоги не управляются версией Git, поэтому пустой пул, созданный компилятором Subversion, не будет доступен в репозитории Git. Предположительно это будет распространяться на пустые каталоги филиалов. – linuxfreakus

+0

Обычно Git не сохраняет пустые каталоги. Это не ограничение Git (можно создать пустой объект Git tree и добавить его как поддерево в другое дерево), это просто мода. Единственный случай, когда Git создает пустые каталоги --- root, если root пуст. –

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