2012-06-15 14 views
7

Używam SubGit do synchronizowania repozytoriów Git i SVN. Podczas klonowania zdalnego repozytorium Git chcę zachować całą historię tego repo. Etapy I obecnie następują pozwala mi skopiować historię jedynej gałęzi master:Konwersja repozytorium Git na SVN z SubGit

svnadmin create svn_repos 
subgit-1.0.0-EAP_1381/bin/subgit configure svn_repos 
subgit-1.0.0-EAP_1381/bin/subgit install svn_repos 
git clone svn_repos gitRepo 

cd gitRepo/ 
git remote add -f newRemote git://127.0.0.1/gitRepo 
... 
From git://127.0.0.1/gitRepo 
* [new branch]  FirstProductionTag -> newRemote/FirstProductionTag 
* [new branch]  SecondProductionTag -> newRemote/SecondProductionTag 
* [new branch]  ThirdProductionTag -> newRemote/ThirdProductionTag 
* [new branch]  bugfix  -> newRemote/bugfix 
* [new branch]  bugfix2 -> newRemote/bugfix2 
* [new branch]  master  -> newRemote/master 

git merge -s ours --no-commit newRemote/master 
git read-tree --prefix=foo/bar/ -u newRemote/master 
git commit -m "Merged new Remote into subdirectory /foo/bar" 
git push origin master 

Jak mogę scalić zmiany z poprawkowe i bugfix2 oddziałów w tym samym czasie? Dzięki!

+0

Evgeniy, co myślisz o zmianie tytułu pytania? Myślę, że obecnie nie odzwierciedla to faktycznego problemu. Proponuję "Konwertowanie repozytorium Git na SVN z SubGit" lub coś podobnego. – vadishev

+0

Tak, masz rację. Dzięki! –

+0

Świetnie! Dziękuję Ci. – vadishev

Odpowiedz

5

Jeśli twoim celem jest, aby repozytorium Subversion ze zdalnego repozytorium Git i trzymać obie repozytoriów zsynchronizowane, należy rozważyć wykonanie następujących czynności:

$ svnadmin create svn_repos 
$ git clone --mirror git://127.0.0.1/gitRepo svn_repos/.git 
$ subgit-1.0.0-EAP_1381/bin/subgit install svn_repos 
+0

Dziękujemy! Działa teraz zgodnie z wymaganiami. –

+0

Naprawdę dziękuję – Gromy

0

ja zalogowany aby powiedzieć prace odpowiedź, że vadishev i jest najprostsze rozwiązanie do importowania repozytorium git z pełną historią do svn.

Chciałbym również dodać, że należy wymagać tylko gałąź master odwzorowane (celowo pomijając inne oddziały w repo git), należy najpierw sklonować repo git z pojedynczej fladze oddziału tak:

git clone git_url --branch git_branch --edynamienny folder docelowy

Dziękuję vadishev.

Powiązane problemy