Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022
Kod można migrować z istniejącego repozytorium Kontroli wersji programu Team Foundation (TFVC) do nowego repozytorium Git w tej samej organizacji. Migracja do usługi Git to proces związany z dużymi repozytoriami i zespołami TFVC. Scentralizowane systemy kontroli wersji, takie jak TFVC, zachowują się inaczej niż git w podstawowy sposób. Przełącznik obejmuje o wiele więcej niż uczenie się nowych poleceń. Jest to destrukcyjna zmiana, która wymaga starannego planowania. Musisz zastanowić się nad:
- Przegląd narzędzi i procesów
- Usuwanie plików binarnych i plików wykonywalnych
- Szkolenie zespołu
Wymagania wstępne
| Kategoria | Requirements |
|---|---|
| Dostęp do projektu | Członek projektu. |
| Uprawnienia | — Wyświetlanie kodu w projektach prywatnych: co najmniej dostęp podstawowy . — Klonowanie lub współtworzenie kodu w projektach prywatnych: członek grupy zabezpieczeń Współautorzy lub odpowiednie uprawnienia w projekcie. — Ustaw uprawnienia gałęzi lub repozytorium: Zarządzaj uprawnieniami dla gałęzi lub repozytorium. - Zmień gałąź domyślną: Edytuj uprawnienia zasad dla repozytorium. — Zaimportuj repozytorium: członek grupy zabezpieczeń Administratorzy projektu lub Uprawnienia do tworzenia repozytorium git na wartość Zezwalaj. Aby uzyskać więcej informacji, zobacz Ustawianie uprawnień repozytorium Git. |
| Services | Włączone repozytoria. |
| Narzędzia | Opcjonalny. Użyj poleceń az repos : interfejs wiersza polecenia usługi Azure DevOps. |
Uwaga / Notatka
W projektach publicznych użytkownicy z dostępem uczestników projektu mają pełny dostęp do usługi Azure Repos, w tym do wyświetlania, klonowania i współtworzenia kodu.
| Kategoria | Requirements |
|---|---|
| Dostęp do projektu | Członek projektu. |
| Uprawnienia | - Wyświetl kod: co najmniej dostęp podstawowy . — Klonowanie lub współtworzenie kodu: członek grupy zabezpieczeń Współautorzy lub odpowiednie uprawnienia w projekcie. |
| Services | Włączone repozytoria. |
Przed rozpoczęciem migracji zdecydowanie zalecamy przeczytanie sekcji Scentralizowana kontrola wersji w usłudze Git i migracja z wersji serwera TFVC do usługi Git .
Środowisko importowania jest idealne dla małych, prostych repozytoriów TFVC. Jest ona również odpowiednia dla repozytoriów, które są już czyste, zgodnie z opisem w sekcji Scentralizowana kontrola wersji w usłudze Git i Migracja z serwera TFVC do usługi Git . W tych sekcjach zaleca się również inne narzędzia do bardziej zaawansowanych konfiguracji repozytorium TFVC.
Ważne
Ze względu na różnice w sposobie przechowywania historii kontroli wersji serwera TFVC i usługi Git nie zalecamy migrowania historii, co jest podejściem, które firma Microsoft podjęła podczas migracji systemu Windows i innych produktów ze scentralizowanej kontroli wersji do usługi Git.
Importowanie repozytorium
Wybierz pozycję Repozytoria, Pliki.
Z listy rozwijanej repozytorium wybierz pozycję Importuj repozytorium.
Wybierz pozycję TFVC z listy rozwijanej Typ źródła
Wpisz ścieżkę do repozytorium / gałęzi / folderu, który chcesz zaimportować do repozytorium Git. Na przykład
$/Fabrikam/FabrikamWebsiteJeśli chcesz przeprowadzić migrację historii z repozytorium TFVC, wybierz pozycję Historia migracji i wybierz liczbę dni. Możesz przeprowadzić migrację do 180 dni historii, począwszy od najnowszego zestawu zmian. Link do repozytorium TFVC jest dodawany w komunikacie zatwierdzenia pierwszego zestawu zmian migrowanego do usługi Git, co ułatwia znajdowanie starszej historii w razie potrzeby.
Nadaj nazwę nowemu repozytorium Git i wybierz pozycję Importuj. W zależności od rozmiaru importu repozytorium Git będzie gotowe w ciągu kilku minut.
Rozwiązywanie problemów
To środowisko jest zoptymalizowane pod kątem małych, prostych repozytoriów TFVC lub repozytoriów przygotowanych do migracji. Oznacza to, że ma kilka ograniczeń.
- Migruje tylko zawartość katalogu głównego lub gałęzi. Jeśli na przykład masz projekt TFVC, w
$/Fabrikamktórym istnieje jedna gałąź i jeden folder pod nim, ścieżka do zaimportowania spowoduje zaimportowanie$/Fabrikamfolderu, podczas gdy$/Fabrikam/<branch>tylko zaimportuje gałąź. - Zaimportowane repozytorium i skojarzona historia (jeśli zaimportowane) nie mogą przekraczać 1 GB rozmiaru.
- Możesz zaimportować do 180 dni historii.
Jeśli którakolwiek z wymienionych wcześniej informacji jest blokowaniem importu, zalecamy wypróbowanie narzędzi zewnętrznych, takich jak Git-TFS w celu importowania i odczytywania naszych oficjalnych dokumentów — scentralizowana kontrola wersji w usłudze Git oraz poniższa sekcja Migracja z serwera TFVC do usługi Git .
Ważne
Użycie narzędzi zewnętrznych, takich jak Git-TFS z produktami, usługami lub platformami firmy Microsoft, jest całkowicie odpowiedzialne za użytkownika. Firma Microsoft nie popiera, nie obsługuje ani nie gwarantuje funkcjonalności, niezawodności ani zabezpieczeń takich rozszerzeń innych niż Microsoft.
Migrowanie z serwera TFVC do usługi Git
Przed przeprowadzeniem migracji kodu źródłowego ze scentralizowanego systemu kontroli wersji do usługi Git należy zrozumieć różnice między nimi i przygotować się do migracji.
Requirements
Aby ułatwić migrację, przed zaimportowaniem procedury repozytorium w poprzedniej sekcji tego artykułu istnieje wiele wymagań.
- Migrowanie tylko jednej gałęzi. Podczas planowania migracji wybierz nową strategię rozgałęziania dla usługi Git. Migrowanie tylko gałęzi głównej obsługuje przepływ pracy oparty na gałęzi tematu, taki jak Gitflow lub GitHub Flow.
- Wykonaj migrację porad, tak jak w temacie, zaimportuj tylko najnowszą wersję kodu źródłowego. Jeśli historia tfVC jest prosta, możesz zdecydować się na migrację historii do 180 dni, aby zespół mógł pracować tylko z usługi Git. Aby uzyskać więcej informacji, zobacz Planowanie migracji do usługi Git.
- Wyklucz zasoby binarne, takie jak obrazy, zestawy danych naukowych lub modele gier z repozytorium. Te zasoby powinny używać rozszerzenia Git LFS (duży magazyn plików), którego narzędzie importu nie konfiguruje.
- Zachowaj zaimportowane repozytorium poniżej 1 GB rozmiaru.
Jeśli repozytorium nie spełnia tych wymagań, użyj narzędziaGit-TFS do przeprowadzenia migracji.
Ważne
Użycie narzędzi zewnętrznych, takich jak Git-TFS z produktami, usługami lub platformami firmy Microsoft, jest całkowicie odpowiedzialne za użytkownika. Firma Microsoft nie popiera, nie obsługuje ani nie gwarantuje funkcjonalności, niezawodności ani zabezpieczeń takich rozszerzeń innych niż Microsoft.
Migrate
Proces migracji z serwera TFVC jest prosty:
- Zapoznaj się z najnowszą wersją gałęzi z serwera TFVC na dysku lokalnym.
- Usuń pliki binarne i narzędzia kompilacji z repozytorium i skonfiguruj system zarządzania pakietami, taki jak NuGet.
-
Konwertowanie dyrektyw konfiguracji specyficznych dla kontroli wersji . Na przykład przekonwertuj
.tfignorepliki na.gitignore, i przekonwertuj.tpattributespliki na.gitattributes. - Zaewidencjonuj zmiany i przeprowadź migrację do usługi Git.
Kroki 1–3 są opcjonalne. Jeśli w repozytorium nie ma plików binarnych i nie ma potrzeby konfigurowania .gitignore elementu lub .gitattributes, możesz przejść bezpośrednio do kroku Zaewidencjonuj zmiany i wykonaj krok migracji .
Zapoznaj się z najnowszą wersją
Utwórz nowy obszar roboczy i zamapuj folder roboczy dla katalogu serwera migrowanego do usługi Git. Ta akcja nie wymaga pełnego mapowania folderów roboczych. Tylko foldery mapy zawierające pliki binarne, które mają zostać usunięte z repozytorium i folderów zawierających pliki konfiguracji specyficzne dla systemu kontroli wersji, takie jak .tfignore.
Po skonfigurowaniu mapowań pobierz folder lokalnie:
tf get /version:T /recursive
Usuwanie plików binarnych i narzędzi kompilacji
Ponieważ usługa Git przechowuje historię zmienionych plików, udostępniając kopię każdego pliku w historii każdemu deweloperowi, zaewidencjonowanie plików binarnych bezpośrednio w repozytorium może spowodować, że repozytorium szybko wzrośnie i doprowadzi do problemów z wydajnością.
W przypadku narzędzi i zależności kompilacji, takich jak biblioteki, należy wdrożyć rozwiązanie do tworzenia pakietów z obsługą obsługi wersji, na przykład NuGet. Wiele narzędzi i bibliotek typu open source jest już dostępnych w galerii NuGet, ale w przypadku zastrzeżonych zależności utwórz nowe pakiety NuGet.
Po przeniesieniu zależności do narzędzia NuGet upewnij się, że nie są one uwzględnione w repozytorium Git, dodając je do elementu .gitignore.
Konwertowanie konfiguracji specyficznej dla kontroli wersji
Kontrola wersji programu Team Foundation udostępnia .tfignore plik, który gwarantuje, że niektóre pliki nie są dodawane do repozytorium kontroli wersji serwera TEAMVC. Możesz użyć .tfignore pliku do automatycznego generowania plików, takich jak dane wyjściowe kompilacji, aby nie były przypadkowo zaewidencjonowane.
Jeśli projekt opiera się na tym zachowaniu, przekonwertuj .tfignore.gitignore plik na plik.
Klienci tfVC międzyplatformowych zapewniają również obsługę .tpattributes pliku, który kontroluje sposób umieszczania plików na dysku lokalnym lub zaewidencjonowany w repozytorium.
.tpattributes Jeśli plik jest używany, przekonwertuj .gitattributes go na plik.
Zaewidencjonuj zmiany i przeprowadź migrację
Zaewidencjonuj wszelkie zmiany, które usuwają pliki binarne, przeprowadzają migrację do zarządzania pakietami lub konwertują konfigurację specyficzną dla kontroli wersji. Po wprowadzeniu tej ostatecznej zmiany w kontroli wersji serwera TEAMVC można wykonać importowanie.
Migracje zaawansowane
NarzędzieGit-TFS to dwukierunkowy most między serwerem TFVS i usługą Git i można go użyć do przeprowadzenia migracji. Git-TFS jest odpowiednia dla migracji z pełną historią, ponad 180 dni, które obsługuje narzędzie Import. Możesz też użyć Git-TFS do podjęcia próby migracji obejmującej wiele gałęzi i relacji scalania.
Przed podjęciem próby migracji z usługą Git-TFS należy pamiętać o następujących podstawowych różnicach między sposobem przechowywania serwera TFVC i historii magazynu Git:
- Usługa Git przechowuje historię jako migawkę repozytorium w czasie, podczas gdy funkcja TFVC rejestruje dyskretne operacje, które wystąpiły w pliku. Nie można wyrazić zmian typów na serwerze TFVC, takich jak zmiana nazwy, cofanie i wycofywanie w usłudze Git. Zamiast widzieć, że nazwa pliku została zmieniona na plik
AB, śledzi tylko ten plikAzostał usunięty i plikBzostał dodany w tym samym zatwierdzeniu. - Usługa Git nie ma bezpośredniego odpowiednika etykiety TFVC. Etykiety mogą zawierać dowolną liczbę plików w dowolnej określonej wersji i mogą odzwierciedlać pliki w różnych wersjach. Chociaż koncepcyjnie podobne, tagi usługi Git wskazują migawkę całego repozytorium w danym momencie. Jeśli projekt opiera się na etykietach tfVC, aby dowiedzieć się, co zostało dostarczone, tagi git mogą nie podawać tych informacji.
- Scalania w programie TFVC występują na poziomie pliku, a nie na całym repozytorium. Tylko podzbiór zmienionych plików można scalić z jednej gałęzi do innej. Pozostałe zmienione pliki można następnie scalić w kolejnym zestawie zmian. W usłudze Git scalanie wpływa na całe repozytorium, a oba zestawy poszczególnych zmian nie mogą być postrzegane jako scalanie.
Ze względu na te różnice zalecamy przeprowadzenie migracji porad i przechowywanie repozytorium TFVC w trybie online, ale tylko do odczytu, aby wyświetlić historię.
Aby spróbować przeprowadzić zaawansowaną migrację za pomocą serwera Git-TFS, zobacz klonowanie pojedynczej gałęzi z historią lub klonowanie wszystkich gałęzi z historią scalania.
Ważne
Użycie narzędzi zewnętrznych, takich jak Git-TFS z produktami, usługami lub platformami firmy Microsoft, jest całkowicie odpowiedzialne za użytkownika. Firma Microsoft nie popiera, nie obsługuje ani nie gwarantuje funkcjonalności, niezawodności ani zabezpieczeń takich rozszerzeń innych niż Microsoft.
Aktualizowanie przepływu pracy
Przejście ze scentralizowanego systemu kontroli wersji do usługi Git to nie tylko migracja kodu. Zespół musi trenować, aby zrozumieć, jak usługa Git różni się od istniejącego systemu kontroli wersji i jak te różnice wpływają na codzienną pracę.
Dowiedz się więcej na temat migrowania ze scentralizowanej kontroli wersji do usługi Git.