как использовать вложенные ветки через git-svn - PullRequest
7 голосов
/ 21 октября 2010

наш сервер SVN имеет транк под названием Dev, и ветви живут в

/Branches/Release/1.0/
                 /2.0/
                 /2.3.4/

я клонировал что-то вроде git svn clone -T Dev ... -b Branches ...
когда я бегу git branch 2.1 remotes/Release/2.1 я получаю:
fatal: Not a valid object name: 'remotes/Release/2.1'.

  • Как обратиться к удаленной ветке?
  • Нужно ли повторно клонировать с разными аргументами?

1 Ответ

11 голосов
/ 21 октября 2010

Как упоминалось в " Как импортировать ветви svn с корнями в разных каталогах в git с использованием git-svn? ", вам нужно захватить все вложенные ветви во время первоначального импорта:

[svn-remote "svn"]
    url = svn://svnserver/repo
    fetch = trunk:refs/remotes/trunk
    branches = branches/*/*:refs/remotes/*
    tags = tags/*:refs/remotes/tags/*

Это также описано в этом потоке .
Для еще более сложной компоновки ветвей SVN (например, ветки в транке! ), модификация репозитория SVN может бытьсначала по порядку, прежде чем внедрять интеграцию git-svn.

Начиная с Git1.6, «1.6.x предлагает глубокое клонирование, так что можно использовать несколько подстановочных знаков с опцией --branches», как упоминалось в« Клонирование нестандартного хранилища Svn с помощью Git-Svn ».

git svn clone https://svn.myrepos.com/myproject web-self-serve --trunk=trunk --branches=branches/*/* --prefix=svn/
...