Freigeben über


Importieren und Migrieren von Repositorys von TFVC zu Git

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

Sie können Code aus einem vorhandenen Team Foundation Version Control (TFVC)-Repository zu einem neuen Git-Repository innerhalb derselben Organisation migrieren. Die Migration zu Git ist ein komplexer Prozess für große TFVC-Repositories und -Teams. Zentralisierte Versionssteuerungssysteme wie TFVC verhalten sich auf grundlegende Weise anders als Git. Der Schalter umfasst viel mehr als das Erlernen neuer Befehle. Es ist eine störende Änderung, die eine sorgfältige Planung erfordert. Sie müssen folgendes berücksichtigen:

  • Überarbeiten von Tools und Prozessen
  • Entfernen von Binärdateien und ausführbaren Dateien
  • Schulung Ihres Teams

Voraussetzungen

Kategorie Anforderungen
Projektzugriff Mitglied eines Projekts.
Erlaubnisse - Code in privaten Projekten anzeigen: Mindestens einfacher Zugriff.
- Klonen oder Mitwirken an Code in privaten Projekten: Mitglied der Sicherheitsgruppe "Mitwirkende" oder entsprechende Berechtigungen im Projekt.
- Verzweigungs- oder Repository-Berechtigungen festlegen: "Berechtigungen verwalten" sind Berechtigungen für die Verzweigung oder das Repository.
- Standard-Branch ändern: Bearbeitungsrichtlinien sind Berechtigungen für das Repository.
- Importieren eines Repositorys: Mitglied der Sicherheitsgruppe "Projektadministratoren" oder Git-Projektebene-Berechtigung "Repository erstellen" auf "Zulassen" gesetzt. Weitere Informationen finden Sie unter Festlegen von Git-Repositoryberechtigungen.
Dienste Repos aktiviert.
Werkzeuge Wahlfrei. Verwenden Sie az repos Befehle: Azure DevOps CLI.

Hinweis

In öffentlichen Projekten haben Benutzer mit Stakeholder-Zugriff vollzugriff auf Azure Repos, einschließlich Anzeigen, Klonen und Beitragen zu Code.

Kategorie Anforderungen
Projektzugriff Mitglied eines Projekts.
Erlaubnisse - Code anzeigen: Mindestens einfacher Zugriff.
- Klonen oder Zum Code beitragen: Mitglied der Sicherheitsgruppe "Mitwirkende " oder entsprechende Berechtigungen im Projekt.
Dienste Repos aktiviert.

Es wird dringend empfohlen, die zentrale Versionssteuerung auf Git und den Abschnitt "Migrieren von TFVC zu Git" zu lesen, bevor Sie die Migration starten.

Die Importerfahrung eignet sich ideal für kleine, einfache TFVC-Repositorys. Es ist auch für Repositorys geeignet, die bereits sauber sind, wie in der zentralen Versionssteuerung zu Git und dem Abschnitt "Migrieren von TFVC zu Git" beschrieben. In diesen Abschnitten werden auch weitere Tools für erweiterte TFVC-Repositorykonfigurationen empfohlen.

Von Bedeutung

Aufgrund der Unterschiede in der Art und Weise, wie TFVC und Git den Versionskontrollverlauf speichern, empfehlen wir, Ihre Versionsgeschichte nicht zu migrieren, was dem Ansatz entspricht, den Microsoft wählte, als es Windows und andere Produkte von der zentralisierten Versionskontrolle zu Git migrierte.

Importieren des Repositorys

  1. Wählen Sie Repos, Dateien aus.

    Anzeigen Ihrer Filialen

  2. Wählen Sie im Repository-Dropdown Repository importieren aus.

    Option

  3. Wählen Sie TFVC aus der Dropdownliste " Quelltyp " aus.

  4. Geben Sie den Pfad zum TFVC-Repository ein, das Sie in das Git-Repository importieren möchten. Der Pfad sollte im Format vorliegen $/TFVCRepositoryName. Verwenden Sie das Format $/TFVCRepositoryName/BranchName, um eine bestimmte Verzweigung zu importieren. Verwenden Sie das Format $/TFVCRepositoryName/FolderName, um einen bestimmten Ordner einschließlich seiner Unterordner zu importieren. Der TFVC-Importvorgang migriert nur den Inhalt des Stamms oder einer Verzweigung. Wenn Sie beispielsweise über ein TFVC-Projekt bei $/Fabrikam verfügen, das eine Verzweigung und einen Ordner enthält, würde ein Pfad zu $/Fabrikam den Ordner importieren, während $/Fabrikam/<branch> nur die Verzweigung importieren würde.

  5. Wenn Sie den Verlauf aus dem TFVC-Repository migrieren möchten, wählen Sie " Migrationsverlauf" und dann die Anzahl der Tage aus. Sie können bis zu 180 Tage Verlauf migrieren, wobei Sie mit dem neuesten Änderungssatz beginnen. Ein Link zum TFVC-Repository wird in der Commit-Nachricht des ersten Changesets hinzugefügt, das zu Git migriert wird, wodurch es bei Bedarf einfach ist, ältere Historien zu finden.

  6. Geben Sie dem neuen Git-Repository einen Namen, und wählen Sie "Importieren" aus. Je nach Größe des Imports wäre Ihr Git-Repository in ein paar Minuten bereit.

    Dialogfeld

Problembehandlung

Diese Erfahrung ist für kleine, einfache TFVC-Repositorys oder Repositorys optimiert, die für eine Migration vorbereitet wurden. Dies bedeutet, dass es einige Einschränkungen hat.

  1. Er migriert nur den Inhalt des Stamms oder einer Verzweigung. Wenn Sie beispielsweise über ein TFVC-Projekt verfügen, bei dem $/Fabrikam eine Verzweigung mit einem darunterliegenden Ordner hat, würde der Pfad $/Fabrikam den Ordner importieren, während der Pfad $/Fabrikam/<branch> nur die Verzweigung importieren würde.
  2. Das importierte Repository und der zugeordnete Verlauf (falls importiert) darf nicht mehr als 1 GB groß sein.
  3. Sie können bis zu 180 Tage Historie importieren.

Wenn einer der zuvor aufgeführten Informationen ein Blocker für Ihren Import ist, empfehlen wir, externe Tools wie Git-TFS zum Importieren und Lesen unserer Whitepapers zu testen – zentrale Versionssteuerung auf Git und die folgende Migration von TFVC zu Git .

Von Bedeutung

Die Verwendung externer Tools wie Git-TFS mit Microsoft-Produkten , -Diensten oder -Plattformen liegt in der Verantwortung des Benutzers. Microsoft unterstützt, unterstützt oder garantiert nicht die Funktionalität, Zuverlässigkeit oder Sicherheit solcher Nicht-Microsoft-Erweiterungen.

Migrieren von der TFVC nach Git

Bevor Sie Quellcode von einem zentralen Versionskontrollsystem zu Git migrieren, verstehen Sie die Unterschiede zwischen den beiden und bereiten Sie sich auf die Migration vor.

Anforderungen

Um Migrationen zu vereinfachen, gibt es viele Anforderungen, bevor Sie das Repository-Verfahren im vorherigen Abschnitt dieses Artikels importieren.

  • Migrieren Sie nur eine einzelne Verzweigung. Wählen Sie bei der Planung der Migration eine neue Verzweigungsstrategie für Git aus. Die Migration nur der Hauptverzweigung unterstützt einen themenbasierten Workflow wie Gitflow oder GitHub Flow.
  • Führen Sie eine Tippmigration wie in, importieren Sie nur die neueste Version des Quellcodes. Wenn der TFVC-Verlauf einfach ist, können Sie sich entscheiden, einen Teil des Verlaufs von bis zu 180 Tagen zu migrieren, damit das Team nur mit Git arbeiten kann. Weitere Informationen finden Sie unter Planen der Migration zu Git.
  • Schließen Sie binäre Objekte wie Bilder, wissenschaftliche Datensätze oder Spielmodelle aus dem Repository aus. Diese Ressourcen sollten die Erweiterung Git LFS (Large File Storage) verwenden, die vom Importtool nicht konfiguriert wird.
  • Behalten Sie das importierte Repository unter 1 GB Größe bei.

Wenn das Repository diese Anforderungen nicht erfüllt, verwenden Sie stattdessen dasGit-TFS-Tool , um Ihre Migration auszuführen.

Von Bedeutung

Die Verwendung externer Tools wie Git-TFS mit Microsoft-Produkten , -Diensten oder -Plattformen liegt in der Verantwortung des Benutzers. Microsoft unterstützt, unterstützt oder garantiert nicht die Funktionalität, Zuverlässigkeit oder Sicherheit solcher Nicht-Microsoft-Erweiterungen.

Migrieren

Der Prozess zum Migrieren von TFVC ist einfach:

  1. Schauen Sie sich die neueste Version der Verzweigung von TFVC auf Ihrem lokalen Datenträger an.
  2. Entfernen Sie Binärdateien und Buildtools aus dem Repository, und richten Sie ein Paketverwaltungssystem wie NuGet ein.
  3. Konvertieren Sie Versionssteuerungsspezifische Konfigurationsdirektiven . Konvertieren Sie .tfignore z. B. Dateien in .gitignore, und konvertieren Sie .tpattributes Dateien in .gitattributes.
  4. Überprüfen Sie Änderungen, und führen Sie die Migration zu Git durch.

Die Schritte 1 bis 3 sind optional. Wenn im Repository keine Binärdateien existieren und keine Einrichtung eines .gitignore oder .gitattributes erforderlich ist, können Sie direkt mit dem Einchecken der Änderungen und dem Durchführen des Migrationsschritts fortfahren.

Schauen Sie sich die neueste Version an

Erstellen Sie einen neuen Arbeitsbereich, und ordnen Sie einen Arbeitsordner für das Serververzeichnis zu, das zu Git migriert wird. Für diese Aktion ist keine vollständige Zuordnung von Arbeitsordnern erforderlich. Nur Ordner, die Binärdateien enthalten, die aus dem Repository entfernt werden sollen, und Ordner, die systemspezifische Konfigurationsdateien für die Versionskontrolle enthalten, wie z.B. .tfignore.

Nachdem Zuordnungen eingerichtet wurden, rufen Sie den Ordner lokal ab:

tf get /version:T /recursive

Entfernen Sie Binärdateien und Build-Tools

Da Git den Verlauf der geänderten Dateien speichert, indem eine Kopie jeder Datei im Verlauf für jeden Entwickler bereitgestellt wird, kann das Einchecken von Binärdateien direkt im Repository dazu führen, dass das Repository schnell wächst und zu Leistungsproblemen führt.

Für Buildtools und Abhängigkeiten wie Bibliotheken übernehmen Sie eine Paketlösung mit Versionsverwaltungsunterstützung, z. B. NuGet. Viele Open Source-Tools und -Bibliotheken sind bereits im NuGet-Katalog verfügbar, aber für proprietäre Abhängigkeiten erstellen Sie neue NuGet-Pakete.

Nachdem Abhängigkeiten in NuGet verschoben wurden, stellen Sie sicher, dass sie nicht im Git-Repository enthalten sind, indem Sie sie zu .gitignore hinzufügen.

Konvertierung der versionskontrollspezifischen Konfiguration

Team Foundation Version Control stellt eine .tfignore Datei bereit, die sicherstellt, dass bestimmte Dateien nicht zum TFVC-Repository hinzugefügt werden. Sie können die .tfignore Datei für automatisch generierte Dateien wie die Buildausgabe verwenden, um zu verhindern, dass sie versehentlich eingecheckt werden.

Wenn das Projekt auf dieses Verhalten angewiesen ist, konvertieren Sie die .tfignore Datei in eine .gitignore Datei.

Plattformübergreifende TFVC-Clients bieten auch Unterstützung für eine .tpattributes Datei, die steuert, wie Dateien auf dem lokalen Datenträger platziert oder in das Repository eingecheckt werden. Wenn eine .tpattributes Datei verwendet wird, konvertieren Sie sie in eine .gitattributes Datei.

Einchecken von Änderungen und Durchführen der Migration

Überprüfen Sie alle Änderungen, die Binärdateien entfernen, zur Paketverwaltung migrieren oder versionssteuerungsspezifische Konfiguration konvertieren. Sobald Sie diese endgültige Änderung in TFVC vorgenommen haben, können Sie den Import ausführen.

Erweiterte Migrationen

Das Git-TFS-Tool ist eine bidirektionale Brücke zwischen TFVS und Git, und Sie können es verwenden, um eine Migration durchzuführen. Git-TFS ist für eine Migration mit vollständigem Verlauf geeignet, mehr als die 180 Tage, die das Importtool unterstützt. Sie können auch Git-TFS verwenden, um eine Migration zu versuchen, die mehrere Verzweigungen und Zusammenführungsbeziehungen enthält.

Bevor Sie eine Migration mit Git-TFS versuchen, beachten Sie die folgenden grundlegenden Unterschiede in der Art und Weise, wie TFVC und Git den Verlauf speichern:

  • Git speichert den Verlauf als Momentaufnahme des Repositorys in der Zeit, während TFVC die diskreten Vorgänge aufzeichnet, die in einer Datei aufgetreten sind. Änderungstypen in TFVC wie Umbenennen, Rückgängigmachen und Rollback können in Git nicht ausgedrückt werden. Anstatt zu sehen, dass die Datei in eine Datei AB umbenannt wurde, verfolgt sie nur, dass die Datei A gelöscht wurde und die Datei B im gleichen Commit hinzugefügt wurde.
  • Git hat keine direkte Analogie zu einer TFVC-Bezeichnung. Bezeichnungen können eine beliebige Anzahl von Dateien in einer bestimmten Version enthalten und Dateien in verschiedenen Versionen wiedergeben. Obwohl konzeptionell ähnlich, verweisen die Git-Tags auf eine Momentaufnahme des gesamten Repositories zu einem bestimmten Zeitpunkt. Wenn das Projekt auf TFVC-Bezeichnungen angewiesen ist, um zu wissen, was übermittelt wurde, stellen Git-Tags diese Informationen möglicherweise nicht bereit.
  • Zusammenführungen in TFVC erfolgen auf Dateiebene und nicht im gesamten Repository. Nur eine Teilmenge geänderter Dateien kann von einer Verzweigung zu einer anderen zusammengeführt werden. Verbleibende geänderte Dateien können dann in einem nachfolgenden Changeet zusammengeführt werden. In Git wirkt sich eine Zusammenführung auf das gesamte Repository aus, und beide Gruppen einzelner Änderungen können nicht als Zusammenführung betrachtet werden.

Aufgrund dieser Unterschiede empfehlen wir, dass Sie eine Tipp-Migration durchführen und Ihr TFVC-Repository online, aber schreibgeschützt halten, um den Verlauf anzuzeigen.

Wenn Sie eine erweiterte Migration mit Git-TFS versuchen möchten, lesen Sie eine einzelne Verzweigung mit Verlauf klonen oder alle Verzweigungen mit der Zusammenführungshistorie klonen.

Von Bedeutung

Die Verwendung externer Tools wie Git-TFS mit Microsoft-Produkten , -Diensten oder -Plattformen liegt in der Verantwortung des Benutzers. Microsoft unterstützt, unterstützt oder garantiert nicht die Funktionalität, Zuverlässigkeit oder Sicherheit solcher Nicht-Microsoft-Erweiterungen.

Aktualisieren des Workflows

Der Wechsel von einem zentralen Versionssteuerungssystem zu Git ist mehr als nur das Migrieren von Code. Das Team benötigt Schulungen, um zu verstehen, wie Git sich vom vorhandenen Versionssteuerungssystem unterscheidet und wie sich diese Unterschiede auf die tägliche Arbeit auswirken.

Erfahren Sie mehr darüber, wie Sie von der zentralen Versionssteuerung zu Git migrieren.