2013-07-25 6 views
22

Я пытаюсь использовать git svn, чтобы клонировать один каталог SVN-репозитория в репозиторий Git.git svn клон одного каталога SVN репозитория

Если я использую git svn clone svn+ssh://path/to/repo/trunk/directory, я получаю Git repo без ветвей, которые отражают ветви в исходном SVN-репо.

Если я использую git svn --stdlayout svn+ssh://path/to/repo/trunk/directory, я получаю пустое Git repo. Ниже приведен вывод команды:

Initialized empty Git repository in /directory/.git/ 
Using higher level of URL: svn+ssh://path/to/repo/trunk/directory => svn+ssh://path/to/repo 
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: File not found: revision 100, path '/trunk/directory' 
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history. 
This may take a while on large repositories 

Я прочитал, что способ исправить выше, чтобы добавить диапазон пересмотра как -r 1000:HEAD, это до сих пор производит пустой репозиторий. Выход:

Initialized empty Git repository in /directory/.git/ 
Using higher level of URL: svn+ssh://path/to/repo/trunk/directory => svn+ssh://path/to/repo 

Любые идеи о том, как клонировать подкаталог репозитория SVN с помощью ГИТ-SVN, что до сих пор захватывает все ветви & тегов из источника SVN respository?

ответ

38

Вы не хотите стандартную раскладки, вы хотите что-то вроде этого:

git svn clone svn+ssh://path/to/repo/ --trunk=trunk/directory --branches=branches/*/directory --tags=tags/*/directory 
+7

Понятно, что вы можете использовать подстановочные знаки в аргументе '--branches'. Неплохо. –

+2

Просто примечание - если у вас нет ветвей или тегов для этого конкретного каталога, вы можете спокойно опустить параметры '--branches' и' --tags'. Это просто использование '--trunk = ...' вместо '--stdlayout' должно работать нормально. – Nux

22

Подготовить и ввести локальный каталог проекта:

mkdir local/project/path 
cd local/project/path 

Инициализировать локальный репозиторий Git с SVN отдаленным и принести данные:

git svn init http://my_svn_server.com/repository/project/location 
git svn fetch 

Заслуга Gabriel Салдана: http://blog.gabrielsaldana.org/using-git-with-subversion-repository-subdirectory/

+2

работал как шарм –

+1

Обратите внимание, что это не позволяет добавлять файл сопоставления пользователей (авторов). По крайней мере, не с '-А'. – Nux

+1

Это практически не отличается от одноэтапного 'git svn clone'. – MarkHu

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