2010-06-19 11 views
6

Obecnie prowadzimy duże repozytorium subversion i próbuję przenieść je do GIT. Problem polega na tym, że wykorzystuje on tomy i znaczniki poniżej katalogu głównego. Na przykład:Importowanie Subversion do GIT: problem ze ścieżkami podrzędnymi

MyDepartment\MyOS\Project1\trunk\    <-- master branch 
MyDepartment\MyOS\Project1\branch\v1   <-- other branch 
MyDepartment\MyOS\Project1\tags\v1_20100101 <-- release tag 

Istnieją różne działy, systemy operacyjne i wiele różnych projektów.

Więc kiedy sklonować repozytorium SVN przy użyciu --stdlayout:

git svn clone --stdlayout http://svn-repository/ 

Klon kończy się pusta. Bez opcji otrzymam klon, ale wtedy gałęzie są traktowane jako katalogi w gałęzi głównej.

  1. Czy istnieje sposób na zaimportowanie tej struktury katalogów za jednym razem?
  2. Jeśli napiszę scenariusz do importowania wszystkich projektów oddzielnie, czy istnieje sposób na połączenie importu GIT na jeden projekt do jednego dużego repozytorium GIT?
+1

'--stdlayout' zakłada' trunk', 'tags',' branch' ** 'es' **. – jfs

Odpowiedz

0

Sprawdź w Git submodules. Prawdopodobnie będziesz musiał zaimportować każdy z podprojektów osobno, ale wynik może odzwierciedlać twoje bieżące użycie nieco lepiej.

+0

Niestety, książka, którą przeczytałem ("Kontrola wersji z Git") zniechęca do korzystania z submodułów w dość przekonujący sposób. – Andomar

3

Gdybym understande pytanie poprawnie, chcesz:

git svn clone 
    --trunk=MyDepartment\MyOS\Project1\trunk 
    --tags=MyDepartment\MyOS\Project1\tags 
    --branches=MyDepartment\MyOS\Project1\branch 
    http://svn-repository/ 

Aktualizacja: można dołączyć więcej niż jeden --branches i --tags:

git svn clone 
    --trunk=MyDepartment\MyOS\Project1\trunk 
    --tags=MyDepartment\MyOS\Project1\tags 
    --tags=MyDepartment\MyOS\Project2\tags 
    --tags=OtherDepatment\MyOS\Project1\tags 
    --branches=MyDepartment\MyOS\Project1\branch 
    --branches=MyDepartment\MyOS\Project2\branch 
    --branches=OtherDepartment\MyOS\Project1\branch 
    http://svn-repository/ 

Nie można mieć bardziej jedno pnie najwyraźniej.

Git jest naprawdę zaprojektowany do obsługi jednego projektu na jedno repozytorium, a nie wielu projektów w jednym repo. Przypuszczam, że trafisz na wiele problemów, próbując go użyć w ten sposób.

+0

Istnieje wiele różnych projektów. Mogę skryptować import dla każdego projektu, ale jak mogę połączyć je w jedno repozytorium git? – Andomar

+0

Mała aktualizacja dotycząca wielu parametrów gałęzi i znaczników. czy to pomaga? Czy chcesz, żeby git automagicznie odgadł złożoną strukturę twojego repozytorium? Uważam, że nie jest to możliwe. – silk

+0

Czy można połączyć wiele repozytoriów git w jeden? – Andomar

Powiązane problemy