Jestem całkiem nowy w git i próbuję przenieść repozytorium svn do git. I przestrzegać instrukcji poniżej więc teraz mam repo git na moim serwerze
http://pauldowman.com/2008/07/26/how-to-convert-from-subversion-to-git/Konwersja svn na git, jak sprawić, by gałęzie nie były po prostu odległe w repozytorium svn?
Więc, jeśli mam zrobić „git git oddział” odpowiedzi „* master” i jeśli to zrobię „git oddziału -r” Dostaję lista wszystkich gałęzi w repozytorium svn.
Moje ostatnie svn-checkiny były w jednym z oddziałów, ale kiedy zrobiłem "git svn clone" - moje zeznania w tej gałęzi (nie zostały jeszcze połączone w pień) są widoczne w moim (git) master branch. Czego tu mi brakuje?
Ponadto, jeśli na mojej maszynie programistycznej zrobię "git clone", pliki są w porządku. Ale jeśli zrobię "git branch -r", zobaczę tylko główny oddział, a nie odległe oddziały. "
Ponieważ pozbieramy svn-repo razem, chciałbym mieć wszystkie gałęzie svn w git-repo, tak, że można uzyskać do nich dostęp od deweloperów:
Ponownie, nie jestem totalną nowicjuszką, ale nie daleko od niej. Więc jeśli jest coś fundamentalnego, czego tu brakuje, proszę, powiedz mi .
Aktualizacja
Po jakiejś RTFM (man git-svn) I rozwiązać pierwszy problem z oddziału rzeczy obecny w branży nadrzędnego
zresetowane --hard piloty/trunk
Teraz pnia i gałęzi mistrz są takie same. Teraz należy dowiedzieć się, jak zdobyć gałęzie od klientów programistycznych.
Aktualizacja 2
mam to działa poprzez łączenie URL powyżej url że Scott wskazał. Tak więc od samego początku.
raz pierwszy stworzony pusty repozytorium na serwerze, są one przechowywane w katalogu/usr/local/git-repo na naszym serwerze:
server> cd /usr/local/git-repos
server> mkdir my_project.git
server> cd my_project.git
server> git init
potem sklonowany z SVN-repozytorium do mojego dev-maszyny (zauważ, że na naszym serwerze svn z „gałęzie” reż nazywa się „oddział” witout imienia „s”):
dev> git svn clone http://<svn.server>/my_project --no-metadata -A authors.txt -t tags -b branch -T trunk my_project
Wtedy niektórzy clean-up, aby uzyskać tagi i oddziałów w kolejności:
dev> cp -Rf .git/refs/remotes/tags/* .git/refs/tags/
dev> rm -Rf .git/refs/remotes/tags
dev> cp -Rf .git/refs/remotes/* .git/refs/heads/
dev> rm -Rf .git/refs/remotes
Teraz dodać swój serwer jako zdalnego repozytorium:
dev> git remote add origin [email protected]<our_server>:/usr/local/git-repos/my_project.git
wreszcie wcisnąć wszystkie branże i tagi do serwera:
dev> git push origin --all
Uff, teraz masz to teraz ja można się pozbyć tego svn-repo.
Update 3
Zamówienie ebneters post poniżej łatwiejszy sposób to robi ...
Użyłem tej metody na lustrze git z serwera svn, z którego ciągle ściągam, a to jakoś łamie historię. Czy to jest oczekiwane, czy robię coś złego. – Doppelganger