Próbuję użyć Git jako frontend do repozytorium SVN, aby móc korzystać z ciekawych funkcji git niczym prostym rozgałęzienia, stashing itpCzy Git-svn może być używany w dużych, rozgałęzionych repozytoriach?
Problem polega na tym, że repozytorium SVN jest dość duża (8000 obrotów) i zawiera wiele gałęzi i tagów (zarówno starych, jak i nowych).
To prawie standardowy układ z konfiguracją zawierającą dyrektywy pobierania, rozgałęzienia i znaczniki.
Ponieważ najstarsze odgałęzienie i znacznik odnoszą się do wersji 10, oznacza to, że każde svn fetch
odczytuje całą historię repozytorium z wersji 10 i do przodu, co może trwać wiele godzin przy wolnym połączeniu.
Jeśli śledzę tylko bagażnik, to jest w porządku, ale nadal chcę, aby git był świadomy nowych gałęzi i znaczników.
Zwykle patrzę na git log -1
na oddział, w którym się znajduję, i otrzymuję wersję SVN z komentarza, więc mogę zrobić git svn fetch -r7915:HEAD
lub coś podobnego. Domyślam się, że to właśnie robi git svn fetch --parent
. Ale dlaczego muszę to zrobić?
Jestem w systemie Windows i używam TortoiseGit, który ma całkiem niezłą obsługę dla git-svn
, ale ponieważ TortoiseGit działa tylko git svn fetch
, utknąłem.
Czy robię coś nie tak? Oczekuję, że svn fetch
będzie szybką operacją, gdy pierwszy svn clone -s
zostanie ukończony.
Dzięki za odpowiedź. Nie mam problemu, że początkowy klon wymaga czasu, ale każda operacja pobierania po tym musi przejść przez prawie wszystkie wersje wydaje się nie tak. –