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ć?

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 .


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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.