© DrHitch/Shutterstock.com
TFS 2012 Versionskontrolle

5 Fallstudie: Work Items beim Merge übertragen


Bei einem Check-in können Work Items ausgewählt werden, die mit dem Check-in verbunden werden. Dabei kann angegeben werden, ob der Check-in das Work Item „löst“ (resolve), oder ob der Check-in nur damit in Verbindung steht (associate). Im ersten Fall ist das Work Item damit erledigt und kann weiteren Check-ins nur noch informativ zugeordnet werden.

So weit, so gut. Wird nun ein Bug gefixt, wird das zugehörige Work Item beim Check-in als Lösung angegeben. Nun muss man den Bug aber von der gefixten Codelinie noch zurück nach Main integrieren und von dort ggf. auch noch auf die bereits existierenden Versionen verteilen. Ein Kinderspiel – nur: das Work Item zu dem Bug wird nicht automatisch mit diesen neuen Check-ins verbunden. Damit geht auch die Information darüber verloren, was der Check-in eigentlich bewirken sollte. Auch später im Build fehlt diese Information.

Die Lösung für dieses Problem wird in diesem Abschnitt vorgestellt. Bei jedem Check-in soll geprüft werden, ob ein Merge vorliegt. Ist das der Fall, sollen alle Work Items, die an der vorherigen Version der beteiligten Dateien hingen, auf den aktuellen Check-in übertragen werden.

5.1 TFS Plug-ins

Die technische Grundlage für die Lösung sind TFS Plug-ins. Dabei handelt es sich um Erweiterungen die, anders als bei dem TFS-Ereignisdienst, im Prozess des TFS ausgeführt werden. Ein solches Plug-in wird in einem Unterverzeichnis des Installationsverzeichnisses des TFS abgelegt.

Bei jeder Änderung in diesem Verzeichnis lädt der TFS alle Klassen, die von der passenden Basisklasse für TFS Plug-ins ableiten. Ein Plug-in kann sich für eine Menge von Ereignissen registrieren, bei deren Eintreten es benachrichtigt werden möchte. Sobald ein Ereignis eintritt, wird das Plug-in zweimal aufgerufen: Der erste Aufruf ist eine Entscheidung. An diesem Punkt kann das Plug-in die Durchführung der dem Ereignis zugrunde liegenden Aktion verhindern. Wird die Aktion erlaubt, erfolgt im zweiten Schritt die Benachrichtigung darüber, dass die Aktion durchgeführt wurde (Abbildung 5.1).

29_TFS_Plugins.png

Abbildung 5.1: Struktur von TFS Plug-ins

Profitipp: Bevor ein Plug-in in den Livebetrieb übernommen wird, sollte es intensiven Tests unterworfen werden. Durch unvorsichtige Programmierung, insbesondere mit den Entscheidungspunkten, kann man leicht den gesamten TFS lahmlegen.

Ein TFS Plug-in implementieren

Ein TFS Plug-in wird in Visual Studio als Klassenbibliothek angelegt. Die Referenzen auf die benötigten Assemblies sind in Tabelle 5.1 zusamme...

Neugierig geworden?

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang