2010-02-26 9 views
6

Ich versuche, einen Weg, um herauszufinden, um herauszufinden, welche Dateien von einem Workitem in TFS 2008Eine Möglichkeit, alle betroffenen Dateien eines workItem oder einer Gruppe von chgsets in TFS 2008 zu finden?

betroffen war mir klar, dass dies eine Duplizierung einer Frage ist bereits von jemandem anderen hier gefragt - View a list of all files changed as part of a Workitem in TFS aber es Unbeantwortet blieb und ich habe immer wieder nach einer Weile gesucht.

Ich verstehe, kann die Links Registerkarte des Arbeitselements anzeigen und dann jedes Änderungsset anzeigen, um die Dateien anzuzeigen, die geändert wurden. Aber das Workitem wird sehr wahrscheinlich mit vielen Changesets verbunden sein, und ich möchte die Dateien, die als Teil des Work Items modifiziert wurden, überprüfen, aber ich habe das Gefühl, dass die Wahrscheinlichkeit, eine oder zwei Dateien zu verpassen, sehr hoch ist müssen sich darauf verlassen, dass jeder einzelne der über 100 Änderungssätze einzeln betrachtet wird.

Kennt jemand einen Weg, dies zu erreichen? Vielen Dank im Voraus für jede Hilfe oder Anleitung.

Antwort

3

Klingt wie ein Job für Powershell ...

function Get-TfsItem([int] $workItemNumber) 
{ 
    Get-TfsServer njtfs -all | 
     foreach { $_.wit.GetWorkItem($workItemNumber) } | 
     foreach { $_.Links } | 
     foreach { ([regex]'vstfs:///VersionControl/Changeset/(\d+)').matches($_.LinkedArtifactUri) } | 
     foreach { $_.groups[1].value } | 
     Get-TfsChangeset | 
     Select-TfsItem | 
     Sort Path -Unique 
} 

Die ersten Zeilen Art von hässlich sind. Wir müssen die Webservice-API direkt aufrufen, da die TFS-Cmdlets das Fehlerverfolgungssystem nicht abdecken. Und die Objekte, die wir zurückbekommen, brauchen eine regelrechte Liebe, bevor sie tun, was wir brauchen. Piping zu "foreach" über & ist ein unglückliches Powershell-Idiom, das entsteht, wenn Sie eine unfreundliche API mit einem lahmen Projektoroperator verknüpfen. (Ich benutze my own replacement, persönlich, aber Sie können sich nicht darauf verlassen.)

Die letzten 3 Zeilen sollten selbsterklärend sein, wenn meine TFS Power Cmdlets & installiert sind, die ihre Arbeit erledigen.

+1

Ich muss es versuchen. Haben Sie Powershell noch nie benutzt, haben Sie Tutorial-Links, die Sie für besonders gut halten? – Billyhole

1

Ich habe gerade Scrum Power Tools Plugin für VS 2010 gefunden, das dies mit einem Klick in VSS macht, installiert und es hat funktioniert. http://visualstudiogallery.msdn.microsoft.com/3f261226-530e-4e9c-b7d7-451c2f77f262

Ich versuche nur, die Powershell-Version 2010 arbeiten zu lassen. http://msdn.microsoft.com/en-us/vstudio/bb980963

Das erste Problem ist, dass die Pwoer-Shell-Option nicht standardmäßig installiert ist, benutzerdefinierte Installation verwenden und wählen Sie diese Option. Wenn es fertig ist, gibt es eine Powershell-Eingabeaufforderung im Menü TFS powertools 2010, die Befehle funktionieren nur dort.

Der Server Get ich musste njtfs mit der URL ersetzen http://tfsserver:8080/tfs und entfernen -all. Das Skript schlägt immer noch fehl.

Letztlich brauche ich einen Detailbericht, der auflistet: source 'Workitem' 'Änderungsset'

Zum Beispiel:
xyz.cs 'Workitem 1' 'C397'
xyz.cs Arbeit Artikel 2 '' C399 '

Irgendwann muss ich dann ausarbeiten, dass Arbeitsaufgabe 1 von Arbeitsaufgabe 2 abhängig ist. Ich muss auch zurück zu Arbeitsaufgabe 1, um den Status zu überprüfen.

Kann jemand mit einem 2010 Versions-Skript helfen? Ich habe noch nie PS geschrieben.

1

Ich brauchte genau die gleiche Sache und ich schrieb ein TFS-Dienstprogramm für mich selbst, mit TFS-API. Es ermöglicht Ihnen, alle Änderungen, die ein Arbeitselement im Laufe der Zeit ausgelöst hat, und einige andere Dinge zu sehen. Ich habe es auf Codeplex gesetzt. Sie können es erhalten von:
tfshelper.codeplex.com

+0

Ich habe die Anwendung funktioniert nach dem Download der Quelle, die Verweise auf die neuere Version und die Aktualisierung der Lösung zu .Net 4.5. Leider habe ich nicht genügend Rechte auf dem Server (benötigt die Berechtigung "Informationen auf Instanzebene bearbeiten"). –