Delen via


Opslagplaatsen importeren en migreren van TFVC naar Git

Azure DevOps Services | Azure DevOps Server | Azure DevOps Server 2022

U kunt code migreren van een bestaande TFVC-opslagplaats (Team Foundation Version Control) naar een nieuwe Git-opslagplaats binnen dezelfde organisatie. Migreren naar Git is een betrokken proces voor grote TFVC-opslagplaatsen en -teams. Gecentraliseerde versiebeheersystemen, zoals TFVC, gedragen zich op fundamentele manieren anders dan Git. De switch omvat veel meer dan het leren van nieuwe opdrachten. Het is een verstorende wijziging waarvoor zorgvuldige planning is vereist. U moet nadenken over:

  • Hulpprogramma's en processen reviseren
  • Binaire bestanden en uitvoerbare bestanden verwijderen
  • Uw team trainen

Vereiste voorwaarden

Categorie Requirements
Toegang tot het project Lid van een project.
toestemmingen - Code weergeven in privéprojecten: ten minste basistoegang .
- Kloon of bijdragen aan code in privéprojecten: lid van de beveiligingsgroep Inzenders of bijbehorende machtigingen in het project.
- Machtigingen voor vertakking of opslagplaats instellen: Machtigingen voor de vertakking of opslagplaats beheren .
- Standaardvertakking wijzigen: Beleidsregels voor de opslagplaats bewerken.
- Een opslagplaats importeren: Lid van de beveiligingsgroep Projectbeheerders of Git-projectniveau Opslagplaatsmachtigingen maken ingesteld op Toestaan. Zie Machtigingen voor Git-opslagplaatsen instellen voor meer informatie.
Services Opslagplaatsen ingeschakeld.
Gereedschappen Optional. Gebruik az-opslagplaatsopdrachten : Azure DevOps CLI.

Opmerking

In openbare projecten hebben gebruikers met toegang tot belanghebbenden volledige toegang tot Azure-opslagplaatsen, waaronder weergeven, klonen en bijdragen aan code.

Categorie Requirements
Toegang tot het project Lid van een project.
toestemmingen - Code weergeven: ten minste basistoegang .
- Kloon of bijdragen aan code: Lid van de beveiligingsgroep Inzenders of bijbehorende machtigingen in het project.
Services Opslagplaatsen ingeschakeld.

We raden u ten zeerste aan gecentraliseerd versiebeheer te lezen naar Git en de sectie Migreren van TFVC naar Git voordat u de migratie start.

De importervaring is ideaal voor kleine, eenvoudige TFVC-opslagplaatsen. Het is ook geschikt voor opslagplaatsen die al zijn opgeschoond, zoals beschreven in gecentraliseerd versiebeheer naar Git en de sectie Migreren van TFVC naar Git . In deze secties worden ook andere hulpprogramma's aanbevolen voor geavanceerdere configuraties van TFVC-opslagplaatsen.

Belangrijk

Vanwege de verschillen in de manier waarop TFVC- en Git-versiebeheergeschiedenis worden opgeslagen, raden we u aan uw geschiedenis niet te migreren. Dit is de methode die Microsoft heeft gebruikt bij het migreren van Windows en andere producten van gecentraliseerd versiebeheer naar Git.

De opslagplaats importeren

  1. Selecteer Opslagplaatsen, Bestanden.

    Uw vertakkingen weergeven

  2. Selecteer opslagplaats importeren in de vervolgkeuzelijst voor opslagplaatsen.

    Optie Opslagplaats importeren

  3. TFVC selecteren in de vervolgkeuzelijst Brontype

  4. Typ het pad naar de TFVC-opslagplaats die u wilt importeren in de Git-opslagplaats. Het pad moet de indeling $/TFVCRepositoryNamehebben. Als u een specifieke vertakking wilt importeren, gebruikt u de indeling $/TFVCRepositoryName/BranchName. Als u een specifieke map, inclusief de bijbehorende submappen, wilt importeren, gebruikt u de indeling $/TFVCRepositoryName/FolderName. Het TFVC-importproces migreert alleen de inhoud van de hoofdtak of een vertakking. Als u bijvoorbeeld een TFVC-project $/Fabrikam hebt met één vertakking en één map eronder, $/Fabrikam wordt de map geïmporteerd terwijl $/Fabrikam/<branch> alleen de vertakking wordt geïmporteerd.

  5. Als u de geschiedenis van de TFVC-opslagplaats wilt migreren, selecteert u Geschiedenis migreren en selecteert u het aantal dagen. U kunt maximaal 180 dagen geschiedenis migreren vanaf de meest recente wijzigingenset. Er wordt een koppeling naar de TFVC-opslagplaats toegevoegd in het doorvoerbericht van de eerste wijzigingenset die naar Git wordt gemigreerd, zodat u eenvoudig oudere geschiedenis kunt vinden wanneer dat nodig is.

  6. Geef een naam op voor de nieuwe Git-opslagplaats en selecteer Importeren. Afhankelijk van de grootte van het importeren, is uw Git-opslagplaats over enkele minuten gereed.

    Dialoogvenster Opslagplaats importeren

Probleemoplossingsproces

Deze ervaring is geoptimaliseerd voor kleine, eenvoudige TFVC-opslagplaatsen of opslagplaatsen die zijn voorbereid op een migratie. Dit betekent dat het enkele beperkingen heeft.

  1. De inhoud van de hoofd- of vertakking wordt alleen gemigreerd. Als u bijvoorbeeld een TFVC-project $/Fabrikam hebt met één vertakking en één map eronder, $/Fabrikam wordt de map geïmporteerd terwijl $/Fabrikam/<branch> alleen de vertakking wordt geïmporteerd.
  2. De geïmporteerde opslagplaats en de bijbehorende geschiedenis (indien geïmporteerd) mogen niet groter zijn dan 1 GB.
  3. U kunt maximaal 180 dagen geschiedenis importeren.

Als een van de eerder vermelde gegevens een obstakel is voor uw import, raden we u aan externe hulpprogramma's zoals Git-TFS te proberen voor het importeren en lezen van onze whitepapers - Gecentraliseerd versiebeheer naar Git en de volgende sectie Migreren van TFVC naar Git .

Belangrijk

Het gebruik van externe hulpprogramma's zoals Git-TFS met Microsoft-producten , -services of -platforms is volledig de verantwoordelijkheid van de gebruiker. Microsoft onderschrijft, ondersteunt of garandeert niet de functionaliteit, betrouwbaarheid of beveiliging van dergelijke niet-Microsoft-extensies.

Migreren van TFVC naar Git

Voordat u broncode migreert van een gecentraliseerd versiebeheersysteem naar Git, begrijpt u de verschillen tussen de twee en bereidt u zich voor op de migratie.

Requirements

Om migraties eenvoudiger te maken, zijn er veel vereisten voordat u de procedure voor het importeren van de opslagplaats in de vorige sectie van dit artikel volgt.

  • Migreer slechts één vertakking. Kies bij het plannen van de migratie een nieuwe vertakkingsstrategie voor Git. Het migreren van alleen de hoofdvertakking ondersteunt een werkstroom op basis van een onderwerpvertakking, zoals Gitflow of GitHub Flow.
  • Voer een tipmigratie uit, zoals in, importeer alleen de nieuwste versie van de broncode. Als TFVC-geschiedenis eenvoudig is, kunt u ervoor kiezen om een aantal geschiedenissen tot 180 dagen te migreren, zodat het team alleen uit Git kan werken. Zie Uw migratie naar Git plannen voor meer informatie.
  • Sluit binaire assets, zoals afbeeldingen, wetenschappelijke gegevenssets of gamemodellen uit de opslagplaats. Deze assets moeten de Extensie Git LFS (Large File Storage) gebruiken, die niet door het importhulpprogramma wordt geconfigureerd.
  • Houd de geïmporteerde opslagplaats kleiner dan 1 GB.

Als de opslagplaats niet aan deze vereisten voldoet, gebruikt u het hulpprogrammaGit-TFS om uw migratie uit te voeren.

Belangrijk

Het gebruik van externe hulpprogramma's zoals Git-TFS met Microsoft-producten , -services of -platforms is volledig de verantwoordelijkheid van de gebruiker. Microsoft onderschrijft, ondersteunt of garandeert niet de functionaliteit, betrouwbaarheid of beveiliging van dergelijke niet-Microsoft-extensies.

Migrate

Het proces voor het migreren van TFVC is eenvoudig:

  1. Bekijk de nieuwste versie van de vertakking van TFVC op uw lokale schijf.
  2. Verwijder binaire bestanden en bouwhulpprogramma's uit de opslagplaats en stel een pakketbeheersysteem in, zoals NuGet.
  3. Configuratierichtlijnen voor versiebeheer converteren . Converteer .tfignore bijvoorbeeld bestanden naar .gitignoreen converteer .tpattributes bestanden naar .gitattributes.
  4. Controleer wijzigingen en voer de migratie naar Git uit.

Stap 1-3 is optioneel. Als er geen binaire bestanden in de opslagplaats staan en u een of meer .gitignorehoeft in te stellen.gitattributes, kunt u rechtstreeks doorgaan naar de wijzigingen inchecken en de migratiestap uitvoeren.

Bekijk de nieuwste versie

Maak een nieuwe werkruimte en wijs een werkmap toe voor de servermap die naar Git wordt gemigreerd. Voor deze actie is geen volledige toewijzing van werkmappen vereist. Alleen mapmappen die binaire bestanden bevatten die moeten worden verwijderd uit de opslagplaats en mappen die versiebeheersysteemspecifieke configuratiebestanden bevatten, zoals .tfignore.

Zodra toewijzingen zijn ingesteld, haalt u de map lokaal op:

tf get /version:T /recursive

Binaire bestanden en buildhulpprogramma's verwijderen

Omdat Git de geschiedenis van gewijzigde bestanden opslaat door een kopie van elk bestand in de geschiedenis aan elke ontwikkelaar op te geven, kan het rechtstreeks inchecken van binaire bestanden naar de opslagplaats ertoe leiden dat de opslagplaats snel groeit en leidt tot prestatieproblemen.

Voor buildhulpprogramma's en afhankelijkheden, zoals bibliotheken, moet u een verpakkingsoplossing gebruiken met ondersteuning voor versiebeheer, zoals NuGet. Veel opensource-hulpprogramma's en -bibliotheken zijn al beschikbaar in de NuGet-galerie, maar voor eigen afhankelijkheden maakt u nieuwe NuGet-pakketten.

Zodra afhankelijkheden zijn verplaatst naar NuGet, moet u ervoor zorgen dat ze niet zijn opgenomen in de Git-opslagplaats door ze toe te voegen aan .gitignore.

Configuratie voor versiebeheer converteren

Team Foundation Version Control biedt een .tfignore bestand, dat ervoor zorgt dat bepaalde bestanden niet worden toegevoegd aan de TFVC-opslagplaats. U kunt het .tfignore bestand gebruiken voor automatisch gegenereerde bestanden, zoals build-uitvoer, zodat ze niet per ongeluk worden ingecheckt.

Als het project afhankelijk is van dit gedrag, converteert u het .tfignore bestand naar een .gitignore bestand.

Platformoverschrijdende TFVC-clients bieden ook ondersteuning voor een .tpattributes bestand dat bepaalt hoe bestanden op de lokale schijf worden geplaatst of die zijn ingecheckt in de opslagplaats. Als een .tpattributes bestand wordt gebruikt, converteert u het naar een .gitattributes bestand.

Wijzigingen controleren en de migratie uitvoeren

Controleer eventuele wijzigingen die binaire bestanden verwijderen, migreren naar pakketbeheer of versiebeheerspecifieke configuratie converteren. Nadat u deze laatste wijziging in TFVC hebt aangebracht, kunt u de import uitvoeren.

Geavanceerde migraties

Het hulpprogrammaGit-TFS is een tweerichtingsbrug tussen TFVS en Git. U kunt het hulpprogramma gebruiken om een migratie uit te voeren. Git-TFS geschikt is voor een migratie met volledige geschiedenis, meer dan de 180 dagen die het importprogramma ondersteunt. U kunt ook Git-TFS gebruiken om een migratie uit te voeren met meerdere vertakkingen en samenvoegrelaties.

Voordat u een migratie uitvoert met Git-TFS, moet u rekening houden met de volgende fundamentele verschillen tussen de manier waarop TFVC en git-archiefgeschiedenis:

  • Git slaat de geschiedenis op als een momentopname van de opslagplaats, terwijl TFVC de discrete bewerkingen registreert die op een bestand zijn opgetreden. Wijzigingstypen in TFVC, zoals hernoemen, ongedaan maken en terugdraaien, kunnen niet worden uitgedrukt in Git. In plaats van te zien dat het bestand is hernoemd naar het bestand AB, wordt alleen bijgehouden dat het bestand A is verwijderd en het bestand B is toegevoegd in dezelfde doorvoering.
  • Git heeft geen directe analogie van een TFVC-label. Labels kunnen een willekeurig aantal bestanden bevatten op elke specifieke versie en kunnen bestanden in verschillende versies weerspiegelen. Hoewel conceptueel vergelijkbaar, verwijzen de Git-tags naar een momentopname van de hele opslagplaats op een bepaald moment. Als het project afhankelijk is van TFVC-labels om te weten wat er is geleverd, bieden Git-tags deze informatie mogelijk niet.
  • Samenvoegingen in TFVC vinden plaats op bestandsniveau, niet in de hele opslagplaats. Alleen een subset van gewijzigde bestanden kan worden samengevoegd van de ene vertakking naar de andere. De resterende gewijzigde bestanden kunnen vervolgens worden samengevoegd in een volgende wijzigingenset. In Git is een samenvoegbewerking van invloed op de hele opslagplaats en kunnen beide sets met afzonderlijke wijzigingen niet worden gezien als een samenvoegbewerking.

Vanwege deze verschillen raden we u aan een tipmigratie uit te voeren en uw TFVC-opslagplaats online te houden, maar alleen-lezen, om de geschiedenis weer te geven.

Als u een geavanceerde migratie wilt uitvoeren met Git-TFS, raadpleegt u een enkele vertakking met de geschiedenis of kloont u alle vertakkingen met de samenvoeggeschiedenis.

Belangrijk

Het gebruik van externe hulpprogramma's zoals Git-TFS met Microsoft-producten , -services of -platforms is volledig de verantwoordelijkheid van de gebruiker. Microsoft onderschrijft, ondersteunt of garandeert niet de functionaliteit, betrouwbaarheid of beveiliging van dergelijke niet-Microsoft-extensies.

De werkstroom bijwerken

Het overstappen van een gecentraliseerd versiebeheersysteem naar Git is meer dan alleen het migreren van code. Het team heeft training nodig om te begrijpen hoe Git verschilt van het bestaande versiebeheersysteem en hoe deze verschillen van invloed zijn op dagelijkse werkzaamheden.

Meer informatie over het migreren van gecentraliseerd versiebeheer naar Git.