Powershell und TFS: tf.exe versus Power Tools TFS-Cmdlets?

8

Ich bin gerade dabei, ein Skript zu erstellen, mit dem ich viele Bewegungen in meiner TFS-Instanz ausführen kann. Ich habe die tfs-Cmdlets mit den 2010 TFS Power Tools verfügbar, aber die get-help-Dokumentation für sie ist sehr spärlich. Genauer gesagt scheint Add-TfsPendingChange das Umbenennen nicht zu unterstützen, was mich zwingt stattdessen "tf.exe rename" zu verwenden.

Zunächst einmal: Habe ich irgendwie die Dokumentation für die Cmdlets verpasst? Ich habe get-help für die Befehle ausprobiert, aber sie unterstützen keine -detailed- oder -example-Flags. Ist etwas mehr verfügbar?

Zweitens: Aus welchem ​​Grund muss ich eines der Cmdlets gegenüber regulären tf.exe bevorzugen? Gibt es andere Vorteile als Objekte durch das Rohr zu führen, wenn ähnliche Funktionen ausgeführt werden?

    
bwerks 04.02.2011, 20:08
quelle

3 Antworten

6

Die TF-Cmdlets sind an dieser Stelle ein minimalistisches Angebot und enthalten die mitgelieferte Dokumentation. Im Allgemeinen würde ich die TF-Cmdlets verwenden, wo sie unterstützen, was ich versuche zu tun - vor allem, wenn Sie irgendwelche Fragen haben. Das Verarbeiten der Ausgabe der Abfrage-Cmdlets ist viel einfacher, weil sie Ihnen anstelle des Textstreams, den Sie analysieren müssen, wenn Sie etwas wie tf status . /r verwenden, reichere Objekte geben.

Beachten Sie außerdem, dass die TF-Cmdlets auf einem x64-Windows-System nur auf einem 32-Bit-PowerShell-Host funktionieren.

    
Keith Hill 04.02.2011, 22:53
quelle
6

Die tf-Cmdlets sind nicht gerade nutzlos, aber ... wir haben uns gerade entschieden, sie in unserer Build-Umgebung zu verwenden, obwohl das Text-Parsen bedeutet.

Abgesehen von der x64-Sache gibt es viele fehlende Befehle (Danke @ Keith) und fehlende Parameter, und am wichtigsten , sie funktionieren nicht in Remote-Sitzungen!

    
Jaykul 09.02.2011 04:22
quelle
3

Eine dritte Option besteht darin, die öffentlichen TFS-Assemblys in PowerShell zu verwenden. Wenn Sie dies tun, können Sie auf alle TFS-Clientfunktionen zugreifen und weiterhin TFS-Cmdlets verwenden. Ob Sie diesen Ansatz über tf.exe und die anderen ausführbaren TFS-Befehlszeilen auswählen, hängt davon ab, welche Skriptumgebung Sie bevorzugen.

Hier ist ein PowerShell-Befehl, der auf die öffentlichen TFS 2013-Assemblies verweist (für TFS 2012 oder 2010 ändern Sie einfach Version=12.0.0.0 in Version=11.0.0.0 oder Version=10.0.0.0 ).

%Vor%

Für Ihr Umbenennungsbeispiel könnten Sie dann Folgendes tun:

  1. Verwenden Sie das Cmdlet Get-TfsWorkspace , um ein Exemplar zu instanziieren Microsoft.TeamFoundation.VersionControl.Client.Workspace Objekt.
  2. Rufen Sie den Workspace -Objekt PendRename auf, GetPendingChanges und Einchecken Methoden.

In etwa so:

%Vor%     
weir 02.07.2015 15:05
quelle

Tags und Links