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?
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.
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!
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
).
Für Ihr Umbenennungsbeispiel könnten Sie dann Folgendes tun:
Get-TfsWorkspace
, um ein Exemplar zu instanziieren
Microsoft.TeamFoundation.VersionControl.Client.Workspace
Objekt. Workspace
-Objekt PendRename auf, GetPendingChanges und Einchecken Methoden. In etwa so:
%Vor%Tags und Links tfs powershell cmdlets tf