Nahtloser Übergang von TFS zu Git ohne Verlust deiner Historie!

In der Welt der Softwareentwicklung ist die Anpassung an moderne Technologien unerlässlich für Effizienz, Sicherheit und Zusammenarbeit. Viele Teams stehen jedoch vor der Herausforderung, von älteren Versionskontrollsystemen wie TFS (Team Foundation Server) zu modernen Plattformen wie Git zu migrieren, ohne dabei wertvolle Historien und Entwicklungsverläufe zu verlieren. Diese Migration ist nicht nur ein technischer Fortschritt, sondern ein strategischer Schritt, der die Tür zu moderneren Plattformen, einfacherer Zusammenarbeit und besserer Codeverwaltung öffnet.

1.    Es wird das Tool git-scm benötigt: git-scm.com/download/win

Nach dem Download muss mindestens die „Git Bash“ installiert werden. Alle weiteren Settings können als vorgegebene Default-Werte so gelassen werden.

2.    Es wird das Tool git-tfs benötigt: github.com/git-tfs/git-tfs
Die gedownloadete Datei unter „C:\Program Files\“ entpacken und dort die git-tfs.exe einmal kurz ausführen.

Anschließend sollte geprüft werden, dass dieser Ordner unter den Systemvariablen im Path steht:

3.    Die CMD als Admin ausführen und prüfen, ob der git-tfs als command funktioniert:
git-tfs help

4.    Mit dem Befehl list-remote-branches können alle Branches auf dem TFS-Server angezeigt werden und wir prüfen gleichzeitig die erfolgreiche Verbindung.
git tfs list-remote-branches office.companyname.de/tfs/Team1

5.    Wenn das Prüfen erfolgreich war, kann das eigentliche Klonen beginnen. Um mögliche Probleme während dem Klonen vorzubeugen, kann das Klonen auf dem Build Server der aktuellen TFS-Solution ausgeführt werden.
Der Befehl clone erstellt ein neues Git-Repository, das aus einem TFS-Quellbaum initialisiert wird, und holt alle Änderungssätze.
# Komplettes Repository mit allen commits klonen:
git tfs clone office.companyname.de/tfs/Team1 $/Internes/projectname

Wir haben die Möglichkeit, vor dem Klonen bereits eine gitignore-Datei mitzugeben:
git tfs clone -d office.companyname.de/tfs/Team1 $/Internes/projectname                                     –gitignore=“C:\Temp\gitignore“
Der Befehl quick-clone erstellt ein neues Git-Repository, dass aus dem letzten (oder angegebenen) Changeset in einem TFS-Quellbaum initialisiert wird, wobei die gesamte Historie ignoriert wird.
# Repository seit dem letzten Changeset klonen:
git tfs quick-clone office.companyname.de/tfs/Team1 $/Internes/projectname

# Repository ab dem vorgegebenen Changeset klonen:
git tfs quick-clone office.companyname.de/tfs/Team1 $/Internes/projectname -c=145

6.    Anschließend kann die Solution einem neuen Repo zugeordnet werden:
git remote add origin gitlab.com/company-adress/projectname.git

7.    Wenn das Zuordnen funktioniert, wird der Code gepushed. Dazu sind Passwort und Username wichtig. Beim Eintippen des Passworts wird dieses nicht angezeigt, funktioniert jedoch trotzdem.
git push –all origin

Dieser Tipp kommt aus Stuttgart von Sascha Daub.