Jaki jest najlepszy sposób klonowania gałęzi po klonowaniu tylko pnia w git-svn?

Biorąc pod uwagę duże repozytorium Subversion z wieloma gałęziami, chcę zacząć używaćgit-svn przez klonowanietrunk najpierw i dodając konkretne gałęzie później. Widziałem co najmniej trzy sposoby, aby to zrobić, ale czy któreś z nich są „oficjalne” lub czy jest najlepszy sposób?

Załóż następujący układ:

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

Tak więc, aby sklonować tylko pień (bez gałęzi), wersja 12345 projektucore:

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

To sklonuje projektcore do katalogu o tej samej nazwie i działającegogit svn rebase pociągnie wszystkie zmiany (po wersji 12345). W tym momencie.git/config powinien mieć w sobie coś takiego:

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

Jak na razie dobrze. Powiedzmy, że chcę dodaćplayground Oddział. To tutaj robi się trochę mgliste.

opcja 1: Zaktualizuj istniejący pilot.git/config dodając tam gałąź:

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

W tym momencie udało mi się:

Pociągnij w wersji 23456 oddziałuplayground

$ git svn fetch -r 23456

Utwórz lokalny oddział i przełącz się na niego

$ git checkout -b playground branches/playground

Wyciągnij najnowsze zmiany:

$ git svn rebase

Opcja 2: Dodaj nowy pilot w.git/config (oprócz istniejącego):

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

Stąd kroki są podobne do tych zopcja 1:

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

Opcja 3: Widziałem też, jak ktoś dodał nowe pobranie do istniejącego pilota:

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

Nie jestem do końca pewien, czy to jest poprawne, czy nawet zadziała. Nie mogę znaleźć, gdzie to widziałem.

Obecnie trzymam sięopcja 1, ale naprawdę chciałbym wiedzieć najbardziej odpowiedni sposób, aby to zrobić.

questionAnswers(1)

yourAnswerToTheQuestion