Close

Przygotowanie

Pierwszym krokiem do migracji projektu z systemu kontroli wersji SVN do Git jest przygotowanie komputera lokalnego potencjalnego klienta migracji. W tej fazie pobierzesz wygodny skrypt narzędziowy, zamontujesz system plików z rozpoznawaniem wielkości liter (jeśli to konieczne) i zmapujesz informacje o autorze z SVN do Git.

Wszystkie trzy z tych kroków należy wykonać na komputerze lokalnym potencjalnego klienta migracji.


Pobieranie skryptu migracji


System Git jest dostarczany z większością niezbędnych narzędzi do importowania repozytorium SVN, jednak brakuje w nim kilku funkcji, które firma Atlassian umieściła w przydatnym pliku JAR. Ten plik będzie integralną częścią migracji, więc pamiętaj, aby pobrać plik svn-migration-scripts.jar z konta Bitbucket firmy Atlassian. Ten przewodnik zakłada, że plik zapisano w katalogu głównym. Zastrzeżenie: do migracji SVN potrzebny jest system plików z rozpoznawaniem wielkości liter, co nie jest obsługiwane w systemie plików NTFS. Sugerujemy wykonanie migracji na komputerze z systemem Linux.

Po ukończeniu pobierania warto zweryfikować skrypty, aby upewnić się, że masz zainstalowane środowisko uruchomieniowe Java, Git, Subversion i narzędzie git-svn. Otwórz wiersz poleceń i uruchom poniższe polecenie:

java -jar ~/svn-migration-scripts.jar verify

Spowoduje to wyświetlenie komunikatu o błędzie w konsoli, jeśli nie masz niezbędnych programów do procesu migracji. Upewnij się, że brakujące oprogramowanie jest zainstalowane, zanim przejdziesz dalej.

Bazy danych
materiały pokrewne

Jak przenieść pełne repozytorium Git

Logo Bitbucket
POZNAJ ROZWIĄZANIE

Poznaj środowisko Git z rozwiązaniem Bitbucket Cloud

Jeśli pojawi się ostrzeżenie, że nie można rozpoznać wersji, uruchom polecenie export LANG=C (w systemach uniksowych) lub SET LANG=C (w systemie Windows) i spróbuj ponownie.

Jeśli przeprowadzasz migrację na komputerze z systemem OS X, zobaczysz również poniższe ostrzeżenie:

You appear to be running on a case-insensitive file-system. This is unsupported, and can result in data loss.

Zajmiemy się tym w następnej sekcji.

Montowanie obrazu dysku z rozróżnianiem wielkości liter


Migracja do Git powinna odbywać się w systemie plików z rozróżnianiem wielkości liter, aby uniknąć uszkodzenia repozytorium. Jest to problem, jeśli przeprowadzasz migrację na komputerze z systemem OS X, ponieważ w systemie plików OS X wielkość liter nie jest rozróżniana.

Jeśli nie korzystasz z systemu OS X, wystarczy utworzyć katalog na komputerze lokalnym o nazwie ~/GitMigration. W tym miejscu wykonasz konwersję. Następnie możesz przejść do kolejnej sekcji.

Migracja do Git: montowanie obrazu dysku

Jeśli używasz systemu OS X, musisz zamontować obraz dysku z rozróżnianiem wielkości liter za pomocą skryptu create-disk-image zawartego w pliku svn-migration-scripts.jar. Obsługuje on dwa parametry:

1. Rozmiar obrazu dysku do utworzenia w gigabajtach. Możesz użyć dowolnego rozmiaru, o ile jest większy niż repozytorium SVN, którego migrację chcesz przeprowadzić.

2. The name of the disk image. This guide uses GitMigration for this value.

Na przykład poniższe polecenie tworzy obraz dysku rozmiarze 5 GB o nazwie GitMigration:

java -jar ~/svn-migration-scripts.jar create-disk-image 5 GitMigration

Obraz dysku jest zamontowany w katalogu domowym, więc powinien być teraz widoczny katalog o nazwie ~/Gitmigration na komputerze lokalnym. Służy on jako wirtualny system plików z rozróżnianiem wielkości liter i tam przechowasz przekonwertowane repozytorium Git.

Wyodrębnianie informacji o autorze


SVN rejestruje tylko nazwę użytkownika autora każdej wersji. Git przechowuje jednak pełne imię i nazwisko oraz adres e-mail autora. Oznacza to, że musisz utworzyć plik tekstowy, który mapuje nazwy użytkowników SVN na ich odpowiedniki w Git.

Migracja do Git: mapowanie nazw użytkowników SVN na nazwy użytkowników Git

Uruchom poniższe polecenia, aby automatycznie wygenerować ten plik tekstowy:

cd ~/GitMigration 
java -jar ~/svn-migration-scripts.jar authors <svn_repo_uri> > authors.txt

Pamiętaj, aby zastąpić <svn_repo_uri> identyfikatorem URI repozytorium SVN, którego migrację chcesz przeprowadzić. Jeśli na przykład repozytorium znajduje się pod adresem https://svn.example.com, należy wykonać następujące polecenie:

java -jar ~/svn-migration-scripts.jar authors https://svn.example.com > authors.txt

Tworzy plik tekstowy o nazwie authors.txt, który zawiera nazwę użytkownika każdego autora w repozytorium SVN wraz z wygenerowanym imieniem i nazwiskiem oraz adresem e-mail. Powinno to wyglądać mniej więcej tak:

j.doe = j.doe <j.doe@mycompany.com> 
m.smith = m.smith <m.smith@mycompany.com>

Zmień część po prawej stronie znaku równości na pełne imię i nazwisko oraz adres e-mail odpowiedniego użytkownika. Na przykład możesz zmienić powyższych autorów na:

j.doe = John Doe <john.doe@atlassian.com>
m.smith = Mary Smith <mary.smith@atlassian.com>

Podsumowanie


Teraz, gdy masz już swoje skrypty migracji, obraz dysku (dotyczy tylko OS X) i informacje o autorze, możesz zaimportować historię SVN do nowego repozytorium Git. Następna faza wyjaśnia, jak działa ta konwersja.


Udostępnij ten artykuł
Następny temat

Zalecane lektury

Dodaj te zasoby do zakładek, aby dowiedzieć się więcej na temat rodzajów zespołów DevOps lub otrzymywać aktualności na temat metodyki DevOps w Atlassian.

Ludzie współpracujący przy ścianie pełnej narzędzi

Blog Bitbucket

Ilustracja DevOps

Ścieżka szkoleniowa DevOps

Demonstracje funkcji z ekspertami Atlassian

Zobacz, jak Bitbucket Cloud współpracuje z Atlassian Open DevOps

Zapisz się do newslettera DevOps

Thank you for signing up