Damit der Code einer Software eine hohe Qualität aufweist sind regelmäßige Reviews Pflicht. Pull Requests (PR) bieten für Reviews eine tolle Plattform. Sie stellen eine Art Benachrichtigung dar, in der ein Verantwortlicher Anton eine andere Entwicklerin Berta darum bittet den neuen Code in den bestehenden zu integrieren. Entwicklerin Berta kann nun Feedback liefern und eine Diskussion beginnen, woraufhin Anton den Code wieder ändert, um schlussendlich wiederum von Berta abgesegnet zu werden. Feedback zu Code wird dabei in Form von Kommentaren hinterlassen. Auch bei den bereits vorgestellten Git Forks, welche nun neu in TFS 2018 dazu gekommen sind, kommen Pull Requests zum Einsatz um bspw. Erweiterungen von außen in das Projekt zu integrieren.
Mit TFS 2018 kommen nun einige Neuerungen in den Bereich der Pull Requests, welche die Benutzbarkeit dieser deutlich erhöhen. Wir stellen Ihnen die Wichtigsten vor.
Zuordnung von Kommentaren
Ein großes Problem mit Pull Requests im TFS war bisher, dass Kommentare nach einem Update des Codes oftmals nun an einer falschen Stelle sichtbar waren, da Kommentare lediglich einer Zeile zugewiesen sind. Dadurch konnte es durchaus vorkommen, dass der Kommentar in Kombination mit dem neuen Code keinerlei Sinn mehr ergab oder im schlimmsten Fall sogar zu Feedback welches im Zusammenhang mit dem neuen Code falsch verstanden werden kann. Hier wurde im TFS 2018 deutlich nachgebessert.
In der Übersicht eines Pull Requests gibt es nun die Möglichkeit bei Kommentaren das originale Diff des Codes zu betrachten. Hierzu wurde ein Button zur Verfügung gestellt, welcher es ermöglicht zwischen dem aktuellen und dem originalen Diff hin- und herzuwechseln.
Filterung
Auch im Bereich der Übersichtlichkeit wurde nachgelegt. Es besteht nun die Möglichkeit Kommentare sowie Dateien zu filtern. Kommentare lassen sich im Reiter Overview praktisch nach ihrem Zustand (Active, Resolved) oder ihrer Aktualität filtern.
Im Bereich Files lassen sich diese sogar gänzlich ausblenden um mehr Übersicht über den Code zu erhalten. Dabei bleibt jedoch neben der kommentierten Zeile das Profilbild des Reviewers erhalten und über eine Quickinfo erhält man einen Ausschnitt des Kommentars. Nach einem Klick auf das Profilbild lässt sich außerdem der gesamte Kommentar öffnen.
Bei einer Vielzahl an Änderungen konnte es im Files Bereich schnell unübersichtlich werden wodurch das Auffinden einer Datei unnötig Zeit kosten konnte. Hier wurde dem TFS 2018 eine Sucheingabe spendiert, welche nicht nur nach Dateinamen, sondern auch nach Ordnernamen, partiellen Pfaden sowie Erweiterungen filtern lässt. Was wir leider vermissen ist das Filtern mit Pattern wie bspw. „/folder/*.test“.
Aufgabenlisten
Häufig kann es vorkommen, dass innerhalb eines PRs bestimmte Arbeiten abgearbeitet werden sollen. So muss beispielsweise sichergestellt werden, dass die Versionsnummer aktualisiert wird, ein Unit Test bei gefixtem Bug hinzugefügt wird oder einfach etwas getestet werden soll.
Mit dem TFS 2018 gibt es nun die Möglichkeit Aufgabenlisten in die Beschreibung eines Pull Requests oder in einen Kommentar zu integrieren. Die über Markdown eingefügten Kontrollkästchen können nun ohne extra die Beschreibung ändern zu müssen komfortabel abgehakt werden.
Zurücksetzen von Votings
Bei einem Push innerhalb eines Pull Requests ist es wahrscheinlich, dass sich nicht nur Kleinigkeiten ändern. Daher könnte es fatal sein, wenn der Reviewer bereits für ein Approved gestimmt hat, sich nun aber nun grundlegendes verändert hat. Bisher wurde das Approved gespeichert, mit dem TFS 2018 kann es nach einem neuen Push oder mit einer neuen Iteration automatisch zurückgesetzt werden, sodass die Annahme erneut manuell gesetzt werden muss. So können fälschlich abgeschlossene Pull Requests reduziert werden.
Diese Option muss über die Branch Policies im Reiter Versionskontrolle des eingestellt werden.
Abschließen von Work Items mit Abschließen des Pull Requests
Auch im Bereich des Abschließens eines Pull Requests hat Microsoft nachgebessert und Vorgänge automatisiert. Im Kontext eines Projektes beinhaltet ein Pull Request im TFS meist ein Feature, einen Bugfix oder einzelne Tasks. Zwar lassen sich die Work Items mit dem PR verknüpfen, müssen aber nach Abschluss dessen zusätzlich manuell abgeschlossen werden. Auch hier bietet der TFS 2018 eine komfortable Lösung, indem er bei Abschluss des Pull Requests neben bekannten Optionen, wie das Löschen des Branches, die Möglichkeit bietet alle verknüpften Work Items automatisch zu schließen.
Die Standardeinstellung hierzu kann, ähnlich wie beim Zurücksetzen der Votings, über die Optionen eines Repositorys gesetzt werden.
Fazit
Der TFS 2018 bessert im Bereich der Pull Requests an den richtigen Stellen nach. Kommentare sind nun endlich korrekt zuordenbar und kleine, aber feine Erweiterungen vereinfachen den Workflow mit diesem Instrument deutlich.