KontextVerknüpfen git verpflichtet mit dem Team Foundation-Workitems
Eine GitHub Enterprise-Installation für die Entwicklung verwendet. Jeder Entwickler hat sein eigenes öffentliches Repo, und die Organisation hat das autorisierende Repo. Pull-Anfragen werden für Code-Reviews verwendet, und wir folgen lose dem git flow Verzweigungsmodell von nvie.
Eine TFS-Installation, die für die Fehlerverfolgung und -bereitstellung verwendet wird (der Versionszweig). Wir spiegeln den Release-Zweig in ein TFS Repo.
Work Items
Jetzt ist der schwierige Teil: Wie verbinden wir git Commits mit TF-Workitem (das ursprünglich kann auf den öffentlichen Zweig des Entwicklers durchgeführt werden)?
Was ich tat
Ich habe um Hilfe bei den folgenden Projekten sah:
Ich habe gelesen Referenz s, um Commits mit Arbeitsaufgaben in beiden Git-TF-Projekten zu verknüpfen, aber ich bin mir nicht sicher, welches Tool verwendet werden soll und wie genau es ausgeführt werden soll.
Ich wäre in Ordnung, wenn ich ein Skript auf die Freigabebranche Commits ausführen musste, um Arbeitsaufgabenreferenzen aus der Commit-Nachricht zu extrahieren und sie mit Changesets zu verknüpfen, die an TFS gesendet wurden. Eine Lösung, die die Zuordnung in Metadaten ermöglicht (anstelle von Commit-Nachrichten), wäre jedoch bevorzugt.
Welche Optionen habe ich, um Arbeitsaufgaben in TFS mit Git-Commits zu verknüpfen?
Interessant. Präziser als meine Antwort. +1 – VonC
Git tfs ist schnell und mehr Feature-Comple aber sehr zerbrechlich, während ms git tf begrenzt ist, aber es ist felsenfest. – regisbsb
@regissb Falsch! Ich bin mir ziemlich sicher, dass git-tfs genauso zuverlässig ist wie git-tf bei den Dingen, die git-tf macht. Die einzige Sache ist, dass git-tfs versucht, Zweige zu unterstützen, an die git-tf überhaupt nicht gedacht hat, weil die TFVC-Zweigunterstützung die schlimmste Unordnung ist, an die man nicht einmal denken konnte. Jedes Mal, wenn ich einen Edge-Fall unterstütze, gibt es einen noch alberneren zu unterstützen! Wenn Sie so zuverlässig sein möchten, verwenden Sie einfach die Option "--ignore-files". Das ist es! – Philippe