Я хочу преобразовать подкаталог репозитория 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
), то эта ошибка может произойти.