Question

Je suis en train de créer un script pour effectuer une grande quantité de mouvements dans mon instance TFS. J'ai les applications TFS disponibles avec les outils électriques TFS 2010, mais la documentation GET-HELP pour eux est très clairsemée. Plus précisément, Add-TFPendingChange ne semble pas prendre en charge le renommée, ce qui m'oblige à utiliser "Tf.exe Rename" à la place.

Tout d'abord: ai-je en quelque sorte raté la documentation des applets de commande? J'ai essayé Get-Help sur les commandes, mais ils ne prennent pas en charge les drapeaux à détail ou à exemples. Est-ce que quelque chose de plus est disponible?

Deuxièmement: quelle raison dois-je préférer l'un des applets de commande par rapport à Tf.exe régulier? Y a-t-il des avantages autres que de passer des objets à travers le tuyau lors de l'exécution de fonctions similaires?

Était-ce utile?

La solution

Les applets de commande TF sont un peu une offre minimaliste à ce stade et cela inclut la documentation fournie. En général, j'utiliserais les applets de commande TF où ils soutiennent ce que j'essaie de faire - surtout si vous avez des questions. Le traitement de la sortie des applets de commande de requête est beaucoup plus facile car ils vous donnent des objets riches au lieu du flux de texte que vous devez analyser lorsque vous utilisez quelque chose comme tf status . /r.

Gardez également à l'esprit que sur un système Windows X64, les applets de commande TF ne fonctionnent que dans un hôte PowerShell 32 bits.

Autres conseils

Les applets TF ne sont pas exactement inutiles, mais ... nous avons décidé de ne pas essayer de les utiliser dans notre environnement de construction en ce moment, même si cela signifie pair de texte.

Mis à part le X64, il y a beaucoup de Commandes manquantes (merci @Keith) et les paramètres manquants, et surtout, ils ne fonctionnent pas dans des séances éloignées!

Une troisième option consiste à utiliser les assemblées publiques TFS à partir de PowerShell. Lorsque vous faites cela, vous pouvez accéder à toutes les capacités du client TFS tout en utilisant des applets de commande TFS également. Que vous choisissiez cette approche tf.exe Et les autres exécutables TFS de commande de commande dépend de l'environnement de script que vous préférez.

Voici AA PowerShell Command pour référencer les assemblées publiques TFS 2013 (pour TFS 2012 ou 2010, il suffit de changer Version=12.0.0.0 à Version=11.0.0.0 ou Version=10.0.0.0).

'Microsoft.TeamFoundation.Client', 'Microsoft.TeamFoundation.Common', 'Microsoft.TeamFoundation.VersionControl.Client' |
    ForEach-Object {
        Add-Type -AssemblyName "$_, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
    }

Pour votre exemple de changement de nom, vous pourriez alors:

  1. Utilisez le Get-TfsWorkspace cmdlet pour instancier unMicrosoft.TeamFoundation.VersionControl.Client.Workspace objet.
  2. Appeler le Workspace objets Cran, GetPendingChanges et Enregistrement Méthodes.

Quelque chose comme ça:

$workspace = Get-Workspace
$workspace.PendRename($oldItemPath, $newItemPath)
$pendingChange = $workspace.GetPendingChanges($oldItemPath)
$workspace.Checkin($pendingChange, $comment)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top