TFS: searchr des files affectés entre des sets de modifications

Nous utilisons Team Foundation Server 2012.

Nous avons demandé à un gars de soumettre 97 files (sans countr le concepteur et les files de ressources) dans Changeet 13646 le 8/9/2016.

Dix (10) jours plus tard le 18/08/2016, il a returnné ces changements dans Changeset 13716.

Pendant ce time, d'autres travaux ont été soumis et complétés.

Existe-t-il un moyen d'interroger TFS pour find les noms de files et les éléments de travail qui ont été inclus dans un set de modifications entre 13646 et 13716?

Je voudrais que ce soit une requête SQL que je peux exécuter dans SQL Server Management Studio.

Bien que ce soit pour TFS 2013 j'espère que cela fonctionne en 2012. Cela a été exécuté contre la database tfs_warehouse

SELECT DISTINCT df.[FileName] ,df.FilePath ,dcs.ChangesetID AS 'ChangeSetID' ,dwi.System_id AS 'WorkItemID' ,dwi.System_WorkItemType ,dwi.System_State ,dwi.System_CreatedDate ,dwi.System_ChangedDate FROM DimFile df JOIN FactCodeChurn fcc ON df.FileSK = fcc.FilenameSK JOIN FactWorkItemChangeset fwi ON fcc.ChangesetSK = fwi.ChangesetSK JOIN DimWorkItem dwi ON fwi.WorkItemID = dwi.System_id AND fwi.TeamProjectCollectionSK = dwi.TeamProjectCollectionSK AND fwi.RemovedDateTime = CONVERT(DATETIME, N'9999', 126) JOIN DimChangeset dcs ON dcs.ChangesetSK = fcc.ChangesetSK WHERE dcs.ChangesetID BETWEEN 13646 AND 13716 ORDER BY dcs.ChangesetID 

Le path d'access au file contient également le nom de file, mais j'ai pensé inclure le nom de file dans un champ distinct

Il existe également un moyen de le faire avec une requête SQL utilisant l'entrepôt de données relationnel. Vous aurez besoin de l'access à la database tfs_warehouse pour cela. Vous devez joindre quelques tables de dimension pour get ce dont vous avez besoin:

  • dbo.WorkItem
  • dbo.WorkItemChangeset
  • dbo.ChangeSet
  • dbo.CodeChurn
  • dbo.File

Vous pouvez utiliser dbo.WorkItemChangeset pour le lien entre les changesets et les work items et dbo.CodeChurn pour le lien entre les changesets et les files.

La documentation à ce sujet est ancienne et incomplète, mais voici quelques liens qui expliquent les tables de faits et de dimensions:

  • Comprendre l'architecture de l'entrepôt de données
  • schémas relationnels
  • schéma des éléments de travail
  • schéma de contrôle de source

Notez qu'il s'agit d'une Tfs_Warehouse database Tfs_Warehouse sorte que les informations de tous les projets de toutes les collections de projets sont stockées ici. Par conséquent, vous ne pouvez pas faire confiance à changeset ou aux ID d'éléments de travail pour être unique. Ces valeurs sont uniques au sein d'une collection de projets unique. Dans Tfs_Warehouse la combinaison de la collection de projets et de l'set de modifications ou de l'identifiant de travail est unique.

Malheureusement, je n'ai pas access à une database Tfs_Warehouse pour le moment, je ne peux donc pas vous fournir la requête exacte. Mais cette question a une requête similaire que vous pourriez modifier.

Commande d' tf history avec / format: Le paramètre détaillé ne peut pas afficher les éléments de travail associés, qui ne répondront pas à vos besoins.

Il ne suggère pas d'interroger la database directement. Au lieu de cela, vous pouvez utiliser la command tf changeset pour afficher des informations complètes, qui incluront les éléments modifiés et les éléments de travail associés:

 tf changeset changesetnumber /noprompt /collection:TeamProjectCollectionUrl 

Dans votre cas, vous devez exécuter deux commands comme:

 tf changeset 13646 /noprompt /collection:TeamProjectCollectionUrl tf changeset 13716 /noprompt /collection:TeamProjectCollectionUrl 

Vérifiez mon exemple dans la capture d'écran suivante:

entrez la description de l'image ici

La command ci-dessous renverra la list des files modifiés, ainsi que les commentaires d'archivage, et je pense que vous devriez voir les éléments de travail aussi (mais je n'ai pas testé cette partie) dans un file journal. Veuillez mettre à jour l'URL de la collection, le nom de la twig dans la command ci-dessous.

 tf history /collection:"tfsserverurl/collection" $/TFSbranchName /noprompt /recursive /format:detailed /v:C13646~C13716 > changeset.log 

Exemple:

Modules: 13646 Utilisateur: LastName, FirstName Date: Jeudi 16 Février 2017 16:26:50

Commentaire: Ajout de valeurs / code return manqué à partir de la fusion de code de twig de décembre

Éléments: modifiez $ / TFSBranchName / abc.cs

Notes d'logging: Réviseur de code: Réviseur de performance: Réviseur de security:

Si vous copyz tous les "Items" du file journal (changeset.log), vous devriez get tous les files qui ont été modifiés dans ces changsesets.