Ответ 1
Вам не нужен стандартный макет, вы хотите что-то вроде этого:
git svn clone svn+ssh://path/to/repo/ --trunk=trunk/directory --branches=branches/*/directory --tags=tags/*/directory
Я пытаюсь использовать git svn
для клонирования одного каталога репозитория SVN в репозиторий Git.
Если я использую git svn clone svn+ssh://path/to/repo/trunk/directory
, я получаю репо Git без ветвей, которые отражают ветки в исходном SVN-репо.
Если я использую git svn --stdlayout svn+ssh://path/to/repo/trunk/directory
, я получаю пустой репозиторий Git. Ниже приведен вывод команды:
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 с помощью git -svn, который по-прежнему захватывает все ветки и теги из исходного SVN-репозитория?
Вам не нужен стандартный макет, вы хотите что-то вроде этого:
git svn clone svn+ssh://path/to/repo/ --trunk=trunk/directory --branches=branches/*/directory --tags=tags/*/directory
Подготовьте и введите локальный каталог проекта:
mkdir local/project/path
cd local/project/path
Инициализировать локальный репозиторий git с помощью svn remote и получить данные:
git svn init http://my_svn_server.com/repository/project/location
git svn fetch
Кредит отправляется Габриэлю Салданье: http://blog.gabrielsaldana.org/using-git-with-subversion-repository-subdirectory/