Zamówienie zdalnej gałęzi za pomocą git svn

188

Sprawdziłem repozytorium svn za pomocą git svn. Teraz muszę sprawdzić jedną z gałęzi i ją śledzić. Jaki jest najlepszy sposób, aby to zrobić?

markovuksanovic
źródło

Odpowiedzi:

355

Standardowy układ Subversion

Utwórz klon git, który zawiera pień Subversion, tagi i gałęzie za pomocą

git svn clone http://svn.example.com/project -T trunk -b oddziały -t tagi

--stdlayoutOpcja jest ładny skrót jeśli repozytorium Subversion wykorzystuje typową strukturę:

git svn clone http://svn.example.com/project --stdlayout

Spraw, aby repozytorium git ignorowało wszystko, co robi repozytorium subversion:

git svn show-ignore >> .git / info / exclude

Powinieneś teraz widzieć wszystkie gałęzie Subversion po stronie git:

gałąź git -r

Powiedz, że nazwa gałęzi w Subversion to waldo. Po stronie gita będziesz biec

git checkout -b waldo-svn piloty / waldo

Sufiks -svn ma na celu uniknięcie ostrzeżeń w formularzu

ostrzeżenie: zmiana nazwy „waldo” jest niejednoznaczna.

Aby zaktualizować gałąź git waldo-svn, uruchom

git checkout waldo-svn
git svn rebase

Począwszy od kasy tylko do bagażnika

Aby dodać gałąź Subversion do klonu tylko pnia, zmodyfikuj, .git/configaby zawierało repozytorium git

[svn-remote "svn-mybranch"]
        url = http://svn.example.com/project/branches/mybranch
        fetch =: referencje / piloty / mybranch

Musisz rozwinąć nawyk biegania

git svn fetch --fetch-all

zaktualizować wszystkie opinie, które git svnsą osobnymi pilotami. W tym momencie możesz tworzyć i śledzić gałęzie jak wyżej. Na przykład, aby utworzyć gałąź git, która odpowiada mybranch, uruchom

git checkout -b mybranch-svn piloty / mybranch

W przypadku gałęzi, z których zamierzasz git svn dcommit, trzymaj ich historie liniowe!


Dalsza informacja

Możesz być także zainteresowany przeczytaniem odpowiedzi na powiązane pytanie .

Greg Bacon
źródło
To nie działa dla mnie, ponieważ sprawdziłem pień za pomocą git svn clone .. Nie ustawiłem gałęzi do sprawdzenia ... Myślę, że najpierw muszę to zrobić.
markovuksanovic
Faktem jest, że użyłem git svn clone svn.example.com/project/trunk A teraz nie wiem, jak ustawić inne gałęzie, które mają być śledzone bez utraty mojego aktualnego repo ...
markovuksanovic
20
Proponuję podać prefiks dla pilotów svn. (dodaj --prefix=svn/podczas wykonywania git-svn initlub git-svn clone) Eliminuje to potrzebę dodawania sufiksu do lokalnych oddziałów.
jasonkarns,
Jeśli masz kilka oddziałów, nie zapomnij zrobić „mistrza kasy” przed zajęciem się innymi
gałęziami
Jeśli show-ignorebłędy znikną, spróbujgit svn show-ignore -i trunk
Antti Haapala