Allgemein Für Administratoren Für Architekten Für Entwickler Für Projektleiter Für Tester News Produkte Publikationen
X
Sven Hubert

Sven Hubert

Git-TF – Schnelleinstieg

Montag, 28. Januar 2013

In unserem Artikel Überlegungen zur Integration von Git und TFS haben wir beschrieben, wann eine Ergänzung der TFS-Toolkette um eine Nutzung von Git sinnvoll ist. Da mit der neuen Version 2.0.1 Git-TF auch für den TFS in der Cloud sprich Team Foundation Service eingesetzt werden kann, wird es wohl noch mehr Einsatzszenarien geben. In diesem kurzen Artikel geht es darum, was zu tun ist, um mit Git-TF und Git starten zu können.

Installation

Java Runtime (benötigt für Git-TF)

Git-TF Command Line http://gittf.codeplex.com (für den Ex- und Import von und nach Git bzw. TFS)

Git http://git-scm.com/downloads (der native Git Client)

Git Visual Studio Source Control Provider: http://visualstudiogallery.msdn.microsoft.com/63a7e40d-4d71-4fbb-a23b-d262124b8f4c/  (Integration in Visual Studio)

(Wahlweise) weitere Clients für Git

Konfiguration

Zeilenumbrüche werden per Default in Git wie Unix-Zeilenumbrüche behandelt. Damit kommt TFS nicht zurecht. Daher sollte während der Installation auf die folgende Einstellung geachtet werden:

clip_image001

Alternativ kann man via Git Config auch die folgende Einstellung treffen:

Git Config core.autocrlf false

Groß-/Kleinschreibung wird in TFS nicht unterschieden. Daher sollten die Einstellungen hier via

Git Config core.ignorecase true

verändert werden.

Die Verwendung von Git-TF sowie rudimentär Git ist auf der Projektseite auf Codeplex beschrieben.

In Visual Studio 2010 und 2012 muss der Source Control Provider noch auf Git umgestellt werden, damit das lokale Git-Repository aus dem heraus die Solution geöffnet wird auch angezogen wird. Die Einstellung befindet sich unter Tools –> Options –> Source Control:

image

Best Practices

Der Git-Export sollte immer nur einen Branch (also den Branch-Folder oder ein Verzeichnis unterhalb eines Branch-Folders) aus TFS enthalten. Also z.B.:

image

Der CustomerX-Branch wird dann wie folgt in ein Git-Repository überführt:

git tf clone http://myserver:8080/tfs/TestCollection $/Demo.Integration/Customers/CustomerX

Dadurch wird im aktuellen lokalen Verzeichnis ein Git-Repository mit dem Namen des obersten exportieren Verzeichnisses erzeugt. Im Beispiel also “CustomerX”. Dies kann durch Angabe eines Repository-Namens geändert werden:

git tf clone http://myserver:8080/tfs/TestCollection $/Demo.Integration/Customers/CustomerX MyRepoName

Damit nicht nur der letzte Stand exportiert wird, kann mit dem Switch –deep bzw. –depth=<num> die komplette Historie bis zur Erzeugung des Verzeichnisses in TFS bzw. eine Anzahl zurückliegender Changesets exportiert werden:

git tf clone http://myserver:8080/tfs/TestCollection $/Demo.Integration/Customers/CustomerX —deep

Gleiches gilt für den Weg zurück in TFS. Hierbei kann man unterscheiden, ob die gesammelten Änderungen aus Git in einem Changeset oder als einzelne Changesets importiert werden. Auch hierfür kommt der –deep Switch zum Einsatz. Einen –depth Switch gibt es hierbei nicht:

git tf checkin –deep

Beachten Sie auch, dass die Arbeit mit TFS und mehreren Git-Repositories zur gleichen Zeit durchaus knifflig werden kann: Locking and git-tf and… danger?

Wer noch überlegt, wozu er das dann eigentlich braucht, dem sei noch einmal unser Artikel Überlegungen zur Integration von Git und TFS ans Herz gelegt. Sie können natürlich auch gern einen Kommentar hinterlassen…

Verwandte Artikel:

Benötigen Sie Unterstützung bei der Software-Entwicklung und Architektur von .NET basierten Lösungen oder bei Einführung und Anpassung von Visual Studio / Microsoft Test Manager / Team Foundation Server?

Wir stehen Ihnen unter info(at)aitgmbh.de gerne zur Verfügung.

Tags: , , , ,

Hinterlasse eine Antwort