14 grudnia 2014

Migracja repozytorium svn do git-a

Nie jest to nawet takie skomplikowane. Dodatkowo, skonfigurowałem msysGit-a pod windows-em. Wymagało to wygenerowania kluczy i skonfigurowania kilku dodatkowych narzędzi (plink/pageant). Przydatne okazały się dwa poniższe linki:
Powtarzając częściowo za poradnikiem, zaczynamy od wygenerowania listy użytkowników svn-a, na tej podstawie tworzymy plik user.txt, w którym mapujemy ich na użytkowników git-a
$ svn log --xml | grep author | sort -u | perl -pe 's/.*>(.*?)<.*/$1 = /'
$ cat users.txt
kungfurry = Robert <robert@example.com>
Następnie klonujemy repozytorium (flaga -s umożliwia śledzenie gałęzi trunk/branch/tags, ale ja nie utrzymywałem tej konwencji i nie testowałem tej opcji). Poradnik zaleca też skasowanie jakiś śmieci z katalogu .git
$ git svn clone svn+ssh://kungfurry@example.com/svn/some_project \
      --authors-file=users.txt --no-metadata my_project
$ rm -Rf my_project/.git/refs/remotes
Wybrałem najprostszą z możliwych ścieżek, chodziło mi bowiem o przeniesienie się na git-a całkowicie. Z tego co już miałem stworzyłem gołego klona i wypchnąłem go na zdalny serwer. Po skasowaniu lokalnego repo, zrobiłem klona z serwera, w ten sposób automatycznie zostały stworzone odniesienie do zdalnego repozytorium.
$ git clone --bare my_project my_project.git
$ scp -r my_project.git kungfurry@example.com:/home/kungfurry/git_repos/
$ rm -rf my_project
$ git clone kungfurry@example.com:/home/kungfurry/git_repos/my_project.git

Brak komentarzy:

Prześlij komentarz