Wybieranie odpowiedniej kontroli wersji dla projektu

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Niezależnie od tego, czy projekt oprogramowania jest duży, czy mały, użycie kontroli wersji tak szybko, jak to możliwe, jest dobrym pomysłem. Usługa Azure Repos obsługuje dwa typy kontroli wersji: Git i Kontrola wersji serwera Team Foundation (TFVC).

Którego systemu kontroli wersji należy używać?

Usługa Git jest domyślnym dostawcą kontroli wersji dla nowych projektów. Do kontroli wersji w projektach należy użyć narzędzia Git i zacząć przenosić istniejące projekty TFVC do usługi Git. Funkcja TFVC jest uważana za ukończoną. Usługa Azure DevOps zachowa zgodność z serwerem TFVC, ale usługa Git otrzyma wszystkie przyszłe inwestycje.

Repozytoria TFVC można używać z usługą Git w tym samym projekcie, więc możesz łatwo dodać serwer TFVC później, jeśli potrzebujesz scentralizowanej kontroli wersji. Aby skonfigurować nowy typ repozytorium dla istniejącego projektu , skorzystaj z tych instrukcji.

Git (rozproszona)

Git to rozproszony system kontroli wersji. Każdy deweloper ma kopię repozytorium źródłowego na swojej maszynie deweloperów. Deweloperzy mogą zatwierdzać każdy zestaw zmian na maszynie deweloperów i wykonywać operacje kontroli wersji, takie jak historia i porównywanie bez połączenia sieciowego. Gałęzie są lekkie. Gdy musisz przełączyć konteksty, możesz utworzyć prywatną gałąź lokalną. Możesz szybko przełączyć się z jednej gałęzi na inną, aby przełączyć się między różnymi odmianami bazy kodu. Później można scalić, opublikować lub usunąć gałąź.

Uwaga

Usługa Git w programach Visual Studio, Azure DevOps Services i Azure DevOps Server jest standardową usługą Git. Program Visual Studio można używać z usługami Git innych firm, a także używać klientów git innych firm z usługą Azure DevOps Server.

Aby dowiedzieć się więcej, zobacz Git i Azure Repos.

TfVC (scentralizowane)

Team Foundation Version Control (TFVC) to scentralizowany system kontroli wersji. Zazwyczaj członkowie zespołu mają tylko jedną wersję każdego pliku na swoich komputerach deweloperskich. Dane historyczne są utrzymywane tylko na serwerze. Gałęzie bazują na ścieżkach i są tworzone na serwerze.

Serwer TFVC ma dwa modele przepływu pracy:

  • Obszary robocze serwera — przed wprowadzeniem zmian członkowie zespołu publicznie wyewidencjonować pliki. Większość operacji wymaga od deweloperów połączenia z serwerem. Ten system ułatwia blokowanie przepływów pracy. Inne systemy, które działają w ten sposób, obejmują Sejf Visual Source, Perforce i CVS. Za pomocą obszarów roboczych serwera można skalować w górę do bardzo dużych baz kodu z milionami plików na gałąź i duże pliki binarne.

  • Lokalne obszary robocze — każdy członek zespołu pobiera kopię najnowszej wersji bazy kodu z nimi i działa w trybie offline w razie potrzeby. Deweloperzy sprawdzają swoje zmiany i w razie potrzeby rozwiązują konflikty. Inny system, który działa w ten sposób, to Subversion.

Aby dowiedzieć się więcej, zobacz Co to jest Kontrola wersji serwera Team Foundation?

Przechodzenie z serwera TFVC do usługi Git

Jeśli masz istniejące repozytoria TFVC, możesz migrować je do repozytoriów Git przy użyciu narzędzia git-tfs. Narzędzie umożliwia migrowanie repozytorium TFVC do repozytorium Git w zaledwie kilku poleceniach.

Możliwości usług Git i TFVC

Poniższa tabela zawiera podsumowanie sposobu obsługi kontroli wersji na serwerze TFVC i usłudze Git.

Możliwości

TFVC

Usługa Git


Zmiany

Członkowie zespołu mogą jednocześnie zmieniać pliki na swoich maszynach deweloperskich. Podczas tworzenia można przekazać (zaewidencjonować) zestawy zmian na serwer. Zmiany można przekazać w dowolnym momencie. Jednak konflikty mogą zostać przerwane.

Po zaewidencjonowania można zmienić komentarz zestawu zmian. Możesz połączyć zestawy zmian z elementami roboczymi i skojarzyć je z ukończonymi kompilacjami.

Członkowie zespołu mogą jednocześnie zmieniać pliki na swoich maszynach deweloperskich. Zatwierdzenia są tworzone na maszynie deweloperów niezależnie od współtworzenia ich do zespołu. Gdy wszystko będzie gotowe, musisz ściągnąć najnowsze zatwierdzenia przed przekazaniem (wypchnięciem) do serwera. W przypadku ściągania konflikty mogą zostać przerwane.

Możesz zmienić najnowsze zatwierdzenie lokalne. Nie można zmienić starszych zatwierdzeń. Możesz połączyć zatwierdzenia z elementami roboczymi i skojarzyć je z ukończonymi kompilacjami.

Z wiersza polecenia można modyfikować i łączyć lokalne zatwierdzenia.

Odgałęzienie

Gałęzie oparte na ścieżkach są używane głównie jako długotrwałe konstrukcje w celu odizolowania ryzyka zmiany między zespołami funkcji i wydaniami. Członkowie zespołu zazwyczaj konfigurują inny obszar roboczy dla każdej gałęzi, nad którą pracują.

Zmiany w każdej gałęzi są niezależne od siebie, więc nie trzeba ich zaewidencjonować przed przełączeniem z jednej gałęzi na inną. Scalanie między gałęziami elementów równorzędnych wymaga scalania bezpodstawnego.

Możesz uzyskać wizualizacje struktur gałęzi i miejsca scalania zestawów zmian.

Zobacz Używanie gałęzi do izolowania ryzyka w Kontrola wersji serwera Team Foundation.

Rozgałęzianie jest lekkie i niezależne od ścieżki. Wielu deweloperów tworzy gałąź dla każdej nowej funkcji, którą kodują, czasami codziennie. Możesz szybko przełączyć się z jednej gałęzi na inną, aby przełączyć się między różnymi odmianami bazy kodu. Możesz tworzyć gałęzie, które istnieją tylko na maszynie deweloperów i udostępniać je, jeśli i kiedy wszystko będzie gotowe.
Przed przełączeniem gałęzi należy zatwierdzić, rozgałęzić, stash lub cofnąć zmiany. Scalanie jest proste i niezależne od zatwierdzenia, na podstawie którego jest oparta gałąź. Możesz porównać gałęzie, aby zobaczyć, które zatwierdzenia istnieją w jakich gałęziach.

Zobacz Przełączanie kontekstów, wstrzymanie pracy i odizolowanie ryzyka za pomocą gałęzi usługi Git.

Rozwiązywanie konfliktów

Być może trzeba będzie rozwiązać konflikty podczas pobierania, ewidencjonowania, scalania lub odstrzymania. Możesz rozwiązać wszystkie typy konfliktów w programie Visual Studio.

Podczas ściągania lub scalania może być konieczne rozwiązywanie konfliktów. Konflikty zawartości można rozwiązać w programie Visual Studio lub w wierszu polecenia.

File Storage

Możesz zaewidencjonować duże pliki binarne. Możesz również użyć narzędzia NuGet w kombinacji lub jako alternatywy.

Możesz zaewidencjonować małe pliki binarne, tak jak zwykłe pliki. Podczas pracy z dużymi plikami binarnymi użyj narzędzia Git-LFS do przechowywania dużych plików binarnych w usłudze Azure Repos.

Historia

Historia plików nie jest replikowana na maszynie deweloperów klienta, dlatego można je wyświetlić tylko wtedy, gdy masz połączenie z serwerem. Historię można wyświetlić w programie Visual Studio i w portalu internetowym. Możesz dodawać adnotacje do plików, aby zobaczyć, kto zmienił wiersz i kiedy go zmienił.

Historia plików jest replikowana na maszynie dewelopera klienta i może być widoczna nawet wtedy, gdy nie jest połączona z serwerem. Historię można wyświetlić w programie Visual Studio i w portalu internetowym. Możesz dodawać adnotacje do plików, aby zobaczyć, kto zmienił wiersz i kiedy go zmienił.

Tagowanie plików

Etykiety można stosować do wersji co najmniej jednego pliku z programu Visual Studio lub wiersza polecenia. Każdy plik może mieć etykietę zastosowaną do innej wersji.

Tagi można stosować z poziomu wiersza polecenia do poszczególnych zatwierdzeń. Wyświetlanie tagów w oknie historii programu Visual Studio.

Wycofywanie zmian

Możesz przywrócić zatwierdzenie.

Skaluj

Możesz pracować nad małymi lub bardzo dużymi projektami przy użyciu lokalnych obszarów roboczych. Obsługa projektów na dużą skalę (milionów plików na gałąź i duże pliki binarne) przy użyciu obszarów roboczych serwera.

Możesz szybko rozpocząć małe projekty. Możesz skalować w górę do bardzo dużych projektów, ale musisz zaplanować modułowe wykorzystanie bazy kodu. W projekcie można utworzyć wiele repozytoriów.

Serwer

Poniższa tabela zawiera podsumowanie funkcji dostępnych z obsługiwanymi serwerami dla każdego z systemów kontroli wersji.

Możliwości

TFVC

Usługa Git


Serwer

Azure DevOps Services, Azure DevOps Server

Usługi Azure DevOps Services, Azure DevOps Server i usługi Git innych firm

Alerty

Członkowie zespołu mogą otrzymywać alerty e-mail po zaewidencjonowanie.

Członkowie zespołu mogą otrzymywać alerty e-mail po wypchnięciu zatwierdzeń do serwera.

Możliwość inspekcji

Ponieważ zespół sprawdza całą swoją pracę w scentralizowanym systemie, możesz zidentyfikować użytkownika zaewidencjonowanego w zestawie zmian i użyć porównania, aby zobaczyć, co się zmieniło. Patrząc na plik, możesz dodać do niego adnotacje , aby zidentyfikować, kto zmienił blok kodu i kiedy to zrobił.

Możesz określić, który użytkownik wypchnął zatwierdzenie. (Każdy może ubiegać się o dowolną tożsamość jako autor lub osobę, która dokonała zatwierdzenia). Możesz określić, kiedy wprowadzono zmiany i co zostało zmienione przy użyciu historii, porównywania i dodawania adnotacji.

Kompilacje (zautomatyzowane przez program TFBuild)

Możesz użyć wszystkich funkcji programu TFBuild , aby utworzyć dowolną kombinację zawartości w kolekcji projektów.

Większość możliwości programu TFBuild umożliwia kompilowanie jednego projektu jednocześnie i co najmniej jednego repozytorium.

Przeglądy kodu

Zobacz Day in the life of a devops developer: Suspend work, fix a bug and conduct a code review (Dzień w życiu dewelopera devops: zawieszanie pracy, naprawianie usterki i przeprowadzanie przeglądu kodu). Aby uzyskać bardziej lekkie dyskusje, możesz również komentować i wysyłać wiadomości e-mail dotyczące zestawu zmian z portalu internetowego.

Zobacz Przeglądanie żądań ściągnięcia. Aby uzyskać bardziej lekkie dyskusje, możesz również komentować i wysyłać wiadomości e-mail dotyczące zatwierdzenia z portalu internetowego.

Pliki

Każdy projekt zawiera wszystkie pliki w ramach jednej ścieżki głównej (na przykład $/FabrikamTFVC). Uprawnienia można stosować na poziomie pliku. Możesz zablokować pliki.

Pliki można przeglądać w portalu internetowym i przy użyciu Eksploratora kontroli źródła w programie Visual Studio.

Projekt istnieje tylko na jednym serwerze.

Każdy projekt może zawierać co najmniej jedno repozytorium Git, a każde repozytorium Git może zawierać co najmniej jedną gałąz. Najbardziej szczegółowe uprawnienia, które można zastosować, to repozytorium lub gałąź. Nie można zablokować plików.

Pliki można przeglądać w portalu internetowym.

Zatwierdzenia można wypychać do wielu repozytoriów zdalnych, na przykład do repozytorium projektu i witryny internetowej hostowanej na platformie Azure.

Bramy jakości

Można używać kompilacji ciągłej integracji, kompilacji zaewidencjonowania bramkowego i zasad ewidencjonowania.

Kompilacje ciągłej integracji i kompilacje zaewidencjonowania bramkowego można używać za pomocą zasad gałęzi.

Klient

W poniższej tabeli podsumowano dostępne funkcje obsługiwane przez klienta w zależności od wybranego systemu kontroli wersji.

Możliwości

TFVC

Usługa Git


Oprogramowanie klienckie

Visual Studio

Visual Studio, Visual Studio Code, Eclipse i inne narzędzia innych firm

Pliki

Pliki można przeglądać przy użyciu Eksploratora kontroli źródła w programie Visual Studio lub przy użyciu Eksplorator plików systemu Windows lub wiersza polecenia.

Pliki można przeglądać przy użyciu Eksplorator plików systemu Windows lub wiersza polecenia.

Zarządzanie pracą na maszynie deweloperów

Oczekujące zmiany i strony Moje prace w programie Visual Studio Team Explorer.

Zmiany, zatwierdzenia i strony gałęzi.

Wstrzymywanie pracy

Możesz wstrzymać pracę ze strony Moja praca lub Odłożyć zmiany na stronie Oczekujące zmiany . Aby uzyskać więcej informacji, zobacz Wstrzymywanie pracy i zarządzanie zestawami półek.

Gałąź można utworzyć z poziomu programu Visual Studio lub wiersza polecenia albo stash z wiersza polecenia.

Zgodność programu Visual Studio

Możesz użyć wszystkich obsługiwanych wersji programu Visual Studio.

Możesz użyć wszystkich obsługiwanych wersji programu Visual Studio.

Portal internetowy

Możesz przeglądać bazę kodu (w tym gałęzie), wyświetlać historię, dodawać adnotacje i komentować zmiany i zestawy półek oraz wykonywać inne zadania, takie jak pobieranie ad hoc wybranych części bazy kodu jako pliku .zip .

Możesz przeglądać bazę kodu, wyświetlać historię, porównywać gałęzie, dodawać adnotacje i komentować zatwierdzenia oraz wykonywać inne zadania, takie jak pobieranie ad hoc wybranych części bazy kodu jako pliku .zip .

Migracja

Aby dowiedzieć się, jak przeprowadzić migrację z serwera TFVC do usługi Git, zobacz Migrowanie z serwera TFVC do usługi Git.