Каков наилучший способ клонирования веток после клонирования только ствола в git-svn?

Учитывая большое хранилище Subversion со многими ветками, я хочу начать использоватьgit-svn клонированиемtrunk сначала и добавление определенных веток позже. Я видел по крайней мере три способа сделать это, но является ли какой-либо из них "официальным" или есть лучший способ?

Предположим следующий макет:

https://svn-repo.com/svn/company
   +--core
   |  +--trunk
   |  +--branches
   |  |  +--fastboot
   |  |  +--playground
   |  +-tags
   +--mobile
      +--trunk
      +--branches
      +--tags

Итак, клонировать только ствол (без веток) ревизии 12345 проектаcore:

$ git svn clone --username=svnuser -r 12345 -Ttrunk https://svn-repo.com/svn/company/core

Это клон проектаcore в каталог с тем же именем и работаетgit svn rebase вытянет все изменения (после ревизии 12345). С этой точки зрения.git/config должно быть что-то вроде этого:

[svn-remote "svn"]
  url = https://svn-repo.com/svn/company
  fetch = core/trunk:refs/remotes/trunk

Все идет нормально. Теперь, скажем, я хочу добавитьplayground ветка. Это где это становится немного туманным.

Опция 1: Обновить существующий пульт в.git/config добавив туда ветку:

[svn-remote "svn"]
  url = https://svn-repo.com/svn/company
  fetch = core/trunk:refs/remotes/trunk
  branches = core/branches/{playground}:refs/remotes/branches/*

На данный момент я смог сделать:

Вытащите в ревизии 23456 веткиplayground

$ git svn fetch -r 23456

Создайте локальную ветку и переключитесь на нее

$ git checkout -b playground branches/playground

Вытащите последние изменения:

$ git svn rebase

Вариант 2: Добавить новый пульт в.git/config (в дополнение к существующему):

[svn-remote "playground"]
  url = https://svn-repo.com/svn/company
  fetch = core/branches/playground:refs/remotes/playground

Отсюда шаги похожи наОпция 1:

$ git svn fetch playground -r 23456
$ git checkout -b playground remotes/playground
$ git svn rebase

Вариант 3Я также видел, как кто-то добавляет новую выборку в существующий пульт:

[svn-remote "svn"]
  url = https://svn-repo.com/svn/company
  fetch = core/trunk:refs/remotes/trunk
  fetch = core/branches/playground:refs/remotes/branches/playground

Я не совсем уверен, правильно ли это или даже сработает. Я не могу найти, где я видел это.

В настоящее время я придерживаюсьОпция 1, но мне бы очень хотелось узнать, какой наиболее подходящий способ сделать это.

Ответы на вопрос(1)

Ваш ответ на вопрос