Próbuję użyć svn2git do migracji projektu SVN do git. Mam jednak problemy z zachowaniem całej historii. Przyczyny wydają się być takie, że bagażnik został przeniesiony w przeszłości. Polecenie używam jest:Jak zachować historię SVN w Git, gdy trunk został przeniesiony?
$ svn2git http://mysvnserver.com/myproject/iPhone/ --no-minimize-url --authors ../authors.txt
Ale to tylko daje mi historię wracając do roku 2011. Projekt faktycznie rozpoczął w 2010 roku prognozowany zaczął patrząc tak:
myproject
trunk
branches
tags
Ale w 2011 roku zostało zmienione na:
myproject
iPhone
trunk
branches
tags
Android
trunk
branches
tags
Stary pień i gałęzie przechodzą pod katalogiem iPhone'a. Historia, którą otrzymuję, zaczyna się od tego, kiedy ten ruch został wykonany. Jeśli wykonam svn log
w katalogu iPhone'a, otrzymam skróconą historię. Ale jeśli I cd trunk; svn log
to otrzymam pełną historię.
Nie mam pojęcia, jak uzyskać tę historię. Mój pomysł polegał na stworzeniu w jakiś sposób repozytorium git z samą historią bagażnika, które ma być kontynuowane do 2010 roku. Później wciągnę to jako gałąź w moim głównym repozytorium i wykonam rebase, aby uzyskać poprawną historię. Ale nie miałem szczęścia tworzenia tego repozytorium tylko dla bagażnika. Próbowałem:
$ svn2git http://mysvnserver.com/myproject/ --rootistrunk --authors ../authors.txt
i
$ svn2git http://mysvnserver.com/myproject/ --rootistrunk -no-minimize-url --authors ../authors.txt
bez powodzenia.
Nie mogę już dobrze zapamiętać problemu, ale ustawiłem to jako odpowiedź, ponieważ wydaje mi się to najbardziej zbliżone do tego, jak faktycznie rozwiązałem problem. Sądzę, że stworzyłem całą masę oddzielnych gałęzi, a następnie zszyłem je razem, patrząc na historię, jak opisujesz. –