Veröffentlichen von Git-Repositories in TFS 2013

TFSlovesGitUnternehmen, die verschiedene Entwicklungsplattformen und Technologien einsetzen, wie z.B. Java und .net, stehen oft vor dem Problem unterschiedliche Versions-Verwaltungssysteme einsetzen zu müssen, um den Wünschen der jeweiligen Entwicklungsabteilung gerecht zu werden. Wird, neben dem Team Foundation Server Version Control System, GIT als ein weiteres Quellcode-Verwaltungssystem eingesetzt, kann der TFS als plattformübergreifende ALM Plattform verwendet werden. Die vor kurzem vorgestellte GIT-Integration macht’s möglich. Eine ausführliche Erläuterung zu diesem Thema ist im Post „TFS loves Git“ zu finden. Grund genug also, um sich mit der Veröffentlichung von lokalen Repositories und der Portierung von bestehenden GIT Repositories in den TFS zu beschäftigen.

TFS GIT-Projekt anlegen

Um GIT als Versionskontrolle einzusetzen, muss ein Team Projekt auf Basis von GIT erzeugt werden. Dabei wählt man im Assistenten zur Erstellung neuer Team-Projekte GIT als Versionskontrollsystem aus.

PublishGIT_NewGitProjectAbbildung 1: Team Projekt auf Basis von Git erstellen

Durch die Erstellung des Team Projekts erhält man, neben den üblichen ALM Werkzeugen (Agile Planning Tools, Test Case Management, Build Automatisierung, Reporting, etc.), ein leeres GIT-Repository, welches den gleichen Namen hat wie das Team Projekt.

Lokales Git Repository veröffentlichen

Falls die Entwicklungstätigkeit eines Entwicklers bisher nur lokal stattgefunden hat, ist es nicht unwahrscheinlich, dass der Source Code mit anderen Entwicklern geteilt werden muss. D.h. das lokale GIT-Repository muss an einen Remote GIT Server gebunden werden.

Der Team Foundation Server kann nun durch die GIT-Integration als Remote Server fungieren und das Repository kann in den TFS veröffentlicht werden. Entweder man verwendet das default Repository, welches durch das Team Projekt erzeugt wurde, oder man erstellt ein neues Repository. Im Folgenden wird ein neues Repository im TFS eingerichtet. Das hat den Vorteil, dass man sich an der Namenskonvention des lokalen Repositories orientieren kann.

1. Repository im TFS WebAccess anlegen

In der Administrationsoberfläche des Team Projekts können unter dem Punkt „Version Control“ alle Git Repositories verwaltet werden. Hier findet man auch die Funktion „New repository“, wie in der nachfolgenden Abbildung zu erkennen ist.

PublishGIT_CreateNewRepoAbbildung 2: Leeres Git Repository im Team Projekt anlegen

2. Lokales Repository zu Team Projekt hinzufügen

Bevor ein lokales Repository in den TFS veröffentlicht werden kann, muss es dem Team Projekt hinzugefügt werden.

Dafür wählt man im Team Explorer den „Connect“ aus und führt unter dem Punkt „Local Git Repositories“ den Befehl „Add“ aus.

PublishGIT_AddGitRepo

Abbildung 3: Lokales Repository als Arbeitsbereich hinzufügen

3. Remote Verbindung konfigurieren

Anschließend wechselt man zum gerade hinzugefügten Repository mit einem Doppelklick und wählt in der „Home“-Ansicht des Team Explorers den Punkt „Commit“.

Dort wird man aufgefordert die URL eines leeren Git Repositories anzugeben, in das dieses lokale Repository veröffentlicht werden soll.

PublishGIT_Commit_I

Abbildung 4: Lokales Repository mit Remote Repository verbinden

Die URL erfährt man über die Code | Explorer Seite des Team Web Access. Dort wird nach der Auswahl des Repositories die entsprechende URL angezeigt.

PublishGIT_GITUrlAbbildung 5: URL des Remote Repository aus Web Access entnehmen

Ist die URL einmal eingetragen, kann der Befehl „Publish“ durchgeführt werden. Anschließend wird die angegebene URL automatisch in der Konfigurationsdatei des GIT Repositories gespeichert.

Bestehendes GIT-Repository in den TFS veröffentlichen

Wenn ein Repository bereits öffentlich ist und z.B. über github mit anderen Entwicklern geteilt wird, sind vor der Veröffentlichung in den TFS ein paar Dinge zu beachten.

Wie gerade erwähnt, wird die Remoteverbindung des Repositories in einer Konfigurationsdatei hinterlegt. Besteht für ein Repository bereits eine Verknüpfung zu einem Remote Server, kann man keine weitere hinzufügen. D.h. man muss erst die Verknüpfung mit dem bestehenden Remotesystem kappen, bevor eine Neue angelegt werden kann.

PublishGIT_eGITRepo_GitHub

Abbildung 6: Remote Verbindung zu Server im eGit Client

Dies sollte in jedem Git Client möglich sein. In der letzten Abbildung erkennt man den eGit Client für Eclipse. Dort befinden sich innerhalb des Repositories im Bereich „Remotes“, die Verbindungen für „Fetch“- und „Push“-Befehle. Löscht man diese weg, wird ebenfalls der Eintrag in der Konfigurationsdatei entfernt und das Repository kann an einen anderen Remote Server verbunden werden.

Dabei wird genauso vorgegangen wie bei einem noch nie veröffentlichen lokalen Repository. Hier sind die durchzuführenden Punkte noch einmal zusammengefasst:

  • Leeres Repository im TFS Web Access erzeugen
  • Repository-URL merken
  • Im Team Explorer im „Connect“ Bereich das Repository hinzufügen
  • Das Repository auswählen und über „Commit“ in das Remote Repository veröffentlichen

Anschließend kann im Web Access des TFS im Bereich „Code“ überprüft werden, ob der Inhalt des Repositories auch vorhanden ist und somit das Veröffentlichen erfolgreich war.

Hinweis: Der Team Foundation Service ist bis fünf Benutzer kostenfrei und eignet sich prima zum Ausprobieren!

[1] http://blogs.msdn.com/b/visualstudioalm/archive/2013/02/06/set-up-connect-and-publish-using-visual-studio-with-git.aspx