Я хочу преобразовать подкаталог репозитория Subversion (обозначенный module здесь) в репозиторий git с полной историей. Есть много операций svn copy (люди Subversion называют их ветвями) в истории моего репозитория Subversion. Политика выпуска заключалась в том, что после создания каждой выпуски или других ветвей старый URL-адрес остается неиспользованным, а новый URL-адрес заменяет старый для хранения работы.
Оптимально, по моему чтению, похоже, что это должно сделать трюк:
$ git svn clone --username=mysvnusername --authors-file=authors.txt \
--follow-parent \
http://svnserver/svn/src/branches/x/y/apps/module module
(где branches/x/y/ изображена самая новая ветвь). Но у меня есть ошибка, которая выглядит примерно так:
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: '/svn/src/!svn/bc/100/branches/x/y/apps/module' path not found
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
( Обновление: Добавление опции --no-minimize-url к вышесказанному не удаляет сообщение об ошибке.)
Каталог module создается и заполняется, но история Subversion, предшествующая новейшей фиксации svn copy, не импортируется (созданный репозиторий git заканчивается тем, что имеет только два коммита, когда я ожидал сотни).
Вопрос заключается в том, как экспортировать полную историю Subversion при наличии этой ситуации?
Возможная причина
-
Поиск сообщения об ошибке, я нашел это: git -svn анонимная проверка не удалась с -s который связан с этой проблемой Subversion: http://subversion.tigris.org/issues/show_bug.cgi?id=3242
Что я понимаю по моему чтению, что-то в Subversion 1.5 изменилось о том, как клиент обращается к репозиторию. С более новой Subversion, если нет доступа для чтения к некоторому супер-каталогу пути URL (true для меня,
svn ls http://svnserver/svnзавершается с ошибкой403 Forbidden), тогда мы терпим неудачу с некоторыми операциями Subversion. -
Джефф Фэрли в своем ответе указывает, что пробелы в URL Subversion также могут вызывать это сообщение об ошибке (подтвержденное пользователем Owen). Посмотрите на его решение, чтобы посмотреть, как он решил дело, если ваш
git svn cloneтерпит неудачу для одного и того же resson. -
Dejay Clayton в своем ответе показывает, что если самые глубокие компоненты подкаталога в URL-адресах ветки и тегов svn одинаково названы (например,
.../tags/release/1.0.0и.../branches/release-candidates/1.0.0), то эта ошибка может произойти.