Välja rätt versionskontroll för projektet

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Om programvaruprojektet är stort eller litet är det en bra idé att använda versionskontroll så snart som möjligt. Azure Repos stöder två typer av versionskontroll: Git och Team Foundation Version Control (TFVC).

Vilket versionskontrollsystem ska jag använda?

Git är standardprovidern för versionskontroll för nya projekt. Du bör använda Git för versionskontroll i dina projekt och börja flytta dina befintliga TFVC-projekt till Git. TFVC anses vara funktionsfyllt. Azure DevOps behåller kompatibiliteten med TFVC, men Git får alla framtida investeringar.

Du kan använda TFVC-lagringsplatser med Git i samma projekt, så det är enkelt att lägga till TFVC senare om du behöver centraliserad versionskontroll. Om du vill konfigurera en ny lagringsplatstyp för ett befintligt projekt använder du dessa instruktioner.

Git (distribuerad)

Git är ett distribuerat versionskontrollsystem. Varje utvecklare har en kopia av källlagringsplatsen på sin utvecklingsdator. Utvecklare kan checka in varje uppsättning ändringar på utvecklingsdatorn och utföra versionskontrollåtgärder som historik och jämföra utan nätverksanslutning. Grenar är lätta. När du behöver växla kontexter kan du skapa en privat lokal gren. Du kan snabbt växla från en gren till en annan för att pivotera mellan olika varianter av din kodbas. Senare kan du sammanfoga, publicera eller ta bort grenen.

Kommentar

Git i Visual Studio, Azure DevOps Services och Azure DevOps Server är standard-Git. Du kan använda Visual Studio med Git-tjänster från tredje part och du kan även använda Git-klienter från tredje part med Azure DevOps Server.

Mer information finns i Git och Azure Repos.

TFVC (centraliserad)

Team Foundation Version Control (TFVC) är ett centraliserat versionskontrollsystem. Teammedlemmar har vanligtvis bara en version av varje fil på sina utvecklingsdatorer. Historiska data underhålls endast på servern. Grenar är sökvägsbaserade och skapas på servern.

TFVC har två arbetsflödesmodeller:

  • Serverarbetsytor – Innan du gör ändringar kan teammedlemmar offentligt checka ut filer. De flesta åtgärder kräver att utvecklare är anslutna till servern. Det här systemet underlättar låsning av arbetsflöden. Andra system som fungerar på det här sättet är Visual Source Valv, Perforce och CVS. Med serverarbetsytor kan du skala upp till mycket stora kodbaser med miljontals filer per gren och stora binära filer.

  • Lokala arbetsytor – Varje gruppmedlem tar med sig en kopia av den senaste versionen av kodbasen och arbetar offline efter behov. Utvecklare checkar in sina ändringar och löser konflikter efter behov. Ett annat system som fungerar på det här sättet är Subversion.

Mer information finns i Vad är Versionskontroll för Team Foundation?

Flytta från TFVC till Git

Om du har befintliga TFVC-lagringsplatser kan du migrera dem till Git-lagringsplatser med hjälp av git-tfs-verktyget. Med verktyget kan du migrera en TFVC-lagringsplats till en Git-lagringsplats med bara ett par kommandon.

Git- och TFVC-funktioner

Följande tabell innehåller en sammanfattning av hur TFVC och Git stöder de viktigaste funktionerna i versionskontroll.

Kapacitet

TFVC

Git


Ändringar

Teammedlemmar kan samtidigt ändra filer på sina utvecklingsdatorer. Du laddar upp (checka in) ändringar till servern när du skapar dem. Du kan ladda upp dina ändringar när som helst. Du kan dock bli avbruten av konflikter.

Du kan ändra kommentaren för en ändringsuppsättning när du checkar in den. Du kan länka ändringsuppsättningar till arbetsobjekt och associera dem med slutförda versioner.

Teammedlemmar kan samtidigt ändra filer på sina utvecklingsdatorer. Du skapar incheckningar på utvecklingsdatorn oberoende av att du bidrar med dem till teamet. När du är klar måste du hämta de senaste incheckningarna innan du laddar upp (pushar) din till servern. När du hämtar kan du bli avbruten av konflikter.

Du kan ändra den senaste lokala incheckningen. Du kan inte ändra äldre incheckningar. Du kan länka incheckningar till arbetsobjekt och associera dem med slutförda versioner.

Du kan ändra och kombinera lokala incheckningar från kommandotolken.

Förgrening

Sökvägsbaserade grenar används främst som långvariga konstruktioner för att isolera risken för förändring mellan funktionsteam och versioner. Gruppmedlemmar konfigurerar vanligtvis en annan arbetsyta för varje gren de arbetar med.

Ändringar i varje gren är oberoende av varandra, så du behöver inte checka in dem innan du växlar från en gren till en annan. Sammanslagning mellan syskongrenar kräver en grundlös sammanslagning.

Du kan få visualiseringar av dina grenstrukturer och var dina ändringsuppsättningar har sammanfogats.

Se Använda grenar för att isolera risker i Team Foundation Version Control.

Förgrening är lätt och sökvägsoberoende. Många utvecklare skapar en gren för varje ny funktion som de kodar, ibland dagligen. Du kan snabbt växla från en gren till en annan för att pivotera mellan olika varianter av din kodbas. Du kan skapa grenar som bara finns på utvecklingsdatorn och dela dem om och när du är redo.
Du måste checka in, förgrena, lagra eller ångra ändringar innan du växlar grenar. Sammanslagning är enkelt och oberoende av den incheckning som grenen baseras på. Du kan jämföra grenar för att se vilka incheckningar som finns på vilka grenar.

Se Använda Git-grenar för att växla kontexter, pausa arbete och isolera risker.

Konfliktlösning

Du kan behöva lösa konflikter när du får, checkar in, sammanfogar eller inte hjälper. Du kan lösa alla typer av konflikter i Visual Studio.

Du kan behöva lösa konflikter när du hämtar eller sammanfogar. Du kan lösa innehållskonflikter i Visual Studio eller från kommandotolken.

File Storage

Du kan checka in stora binära filer. Du kanske också vill använda NuGet i kombination eller som ett alternativ.

Du kan checka in små binära filer precis som vanliga filer. När du arbetar med stora binära filer använder du Git-LFS för att lagra dina stora binära filer i Azure Repos.

Historik

Filhistoriken replikeras inte på klientutvecklingsdatorn och kan därför endast visas när du är ansluten till servern. Du kan visa historik i Visual Studio och på webbportalen. Du kan kommentera filer för att se vem som ändrade en rad och när de ändrade den.

Filhistoriken replikeras på klientutvecklingsdatorn och kan visas även när den inte är ansluten till servern. Du kan visa historik i Visual Studio och på webbportalen. Du kan kommentera filer för att se vem som ändrade en rad och när de ändrade den.

Tagga dina filer

Du kan använda etiketter på en version av en eller flera filer från antingen Visual Studio eller kommandotolken. Varje fil kan ha en etikett som tillämpas på en annan version.

Du kan använda taggar från kommandotolken för enskilda incheckningar. Visa taggar i historikfönstret i Visual Studio.

Återställa ändringar

Du kan återställa en incheckning.

Skala

Du kan arbeta med små eller mycket storskaliga projekt med hjälp av lokala arbetsytor. Stöd för storskaliga projekt (miljontals filer per gren och stora binära filer) med hjälp av serverarbetsytor.

Du kan snabbt starta små projekt. Du kan skala upp till mycket stora projekt, men du måste planera i förväg för att modularisera din kodbas. Du kan skapa flera lagringsplatser i ett projekt.

Server

I följande tabell sammanfattas de funktioner som är tillgängliga med servrar som stöds för vart och ett av versionskontrollsystemen.

Kapacitet

TFVC

Git


Server

Azure DevOps Services, Azure DevOps Server

Tjänster från Azure DevOps Services, Azure DevOps Server och Git från tredje part

Aviseringar

Gruppmedlemmar kan få e-postaviseringar när incheckningar skickas till servern.

Granskningsbarhet

Eftersom ditt team checkar in allt sitt arbete i ett centraliserat system kan du identifiera vilken användare som checkats in i en ändringsuppsättning och använda jämför för att se vad de har ändrat. När du tittar på en fil kan du kommentera den för att identifiera vem som ändrade ett kodblock och när de gjorde det.

Du kan identifiera vilken användare som skickade en incheckning. (Vem som helst kan göra anspråk på någon identitet som den författare eller person som gjorde incheckningen.) Du kan identifiera när ändringar har gjorts och vad som har ändrats med hjälp av historik, jämförelse och kommentar.

Byggen (automatiserade av TFBuild)

Du kan använda alla TFBuild-funktioner för att skapa valfri kombination av innehåll som du vill i projektsamlingen.

Du kan använda de flesta TFBuild-funktioner för att skapa ett projekt i taget och en eller flera lagringsplatser i taget.

Kodgranskningar

Se Dag i livet för en devops-utvecklare: Pausa arbete, åtgärda en bugg och genomföra en kodgranskning. För enklare diskussioner kan du också kommentera och skicka e-post om en ändringsuppsättning från webbportalen.

Se Granska pull-begäranden. För enklare diskussioner kan du också kommentera och skicka e-post om en incheckning från webbportalen.

Filer

Varje projekt innehåller alla filer under en enda rotsökväg (till exempel : $/FabrikamTFVC). Du kan använda behörigheter på filnivå. Du kan låsa filer.

Du kan bläddra bland dina filer på webbportalen och använda Source Control Explorer i Visual Studio.

Projektet finns bara på en server.

Varje projekt kan innehålla en eller flera Git-lagringsplatser och varje Git-lagringsplats kan innehålla en eller flera grenar. De mest detaljerade behörigheter du kan använda är till en lagringsplats eller en gren. Filer kan inte låsas.

Du kan bläddra bland dina filer på webbportalen.

Du kan skicka incheckningar till flera fjärranslutna lagringsplatser, till exempel till både projektlagringsplatsen och till din webbplats som finns i Azure.

Kvalitetsgrindar

Du kan använda ci-versioner (continuous integration), gated check-in builds och incheckningsprinciper.

Du kan använda CI-versioner och gated-incheckningsversioner via grenprinciper.

Klient

I följande tabell sammanfattas de funktioner som stöds av klienten beroende på vilket versionskontrollsystem du väljer.

Kapacitet

TFVC

Git


Klientprogramvara

Visual Studio

Visual Studio, Visual Studio Code, Eclipse och andra verktyg från tredje part

Filer

Du kan bläddra bland dina filer med hjälp av Source Control Explorer i Visual Studio eller med hjälp av Windows Utforskaren eller kommandotolken.

Du kan bläddra bland dina filer med hjälp av Windows Utforskaren eller kommandotolken.

Hantera arbete på utvecklingsdatorn

Väntande ändringar och mina arbetssidor i Visual Studio Team Explorer.

Sidor för ändringar, incheckningar och grenar.

Pausa ditt arbete

Du kan pausa arbetet från sidan Mitt arbete eller Lägga dina ändringar på sidan Väntande ändringarhyllan. Mer information finns i Pausa ditt arbete och hantera dina hyllor.

Du kan skapa en gren från Visual Studio eller kommandotolken eller gömma från kommandotolken.

Visual Studio-kompatibilitet

Du kan använda alla versioner av Visual Studio som stöds.

Du kan använda alla versioner av Visual Studio som stöds.

Webbportal

Du kan bläddra i din kodbas (inklusive grenar), visa historik, kommentera och kommentera ändringar och hyllor och utföra andra uppgifter, till exempel ad hoc-nedladdning av valda delar av kodbasen som en .zip fil.

Du kan bläddra i din kodbas, visa historik, jämföra grenar, kommentera och kommentera incheckningar och utföra andra uppgifter, till exempel ad hoc-nedladdning av valda delar av kodbasen som en .zip fil.

Migrering

Information om hur du migrerar från TFVC till Git finns i Migrera från TFVC till Git.