2
votes

API TFS: comment obtenir l'historique d'un fichier?

Il est très simple d'obtenir tous les ensembles de modifications, des ensembles de modifications spécifiques, ou même de rechercher une version spécifique d'un fichier (avec un identifiant d'ensemble de modifications) en utilisant non seulement l'API TFS mais les bibliothèques clientes.

Cependant, ce que je n'arrive pas à comprendre, c'est le nom / chemin d'un fichier et une branche spécifique, c'est comment récupérer l'historique des modifications pour ce fichier.

J'ai essayé d'utiliser à la fois le TfvcHttpClient ainsi que l'API TFS brute (en créant ma requête http GET à la main) et je n'arrive pas à trouver un moyen d'y arriver.

Ceci est très similaire à l'affichage de l'historique d'un fichier dans Visual Studio 2017:

 entrez la description de l'image ici

Je cherche littéralement un moyen via l'API TFS de me donner ces informations.

Est-ce possible?

Merci!


1 commentaires

pour plus de précisions, c'est TFS 2017 et je n'utilise pas Git (beaucoup à mon shigrin). Utilisation de tout le contrôle de source TFS


4 Réponses :


0
votes

Je ne trouve aucune demande d'historique pour tfvc ici - Rester Api TFVC Version Control .

Pour contourner ce problème, vous pouvez essayer d'exécuter tf.exe history et analysez la sortie.


0 commentaires

2
votes

Rest API request:

{repositoryId: "", searchCriteria: "{"itemPath":"$/YourProject/YourFile","itemVersion":"T","top":50}"} 

Dans le corps de la requête:

{tfsurl}/{project}/_api/_versioncontrol/history" 

Il renverra l'historique pour le itemPath de votre corps.

Malheureusement, j'ai du mal à trouver de la documentation à ce sujet: /


3 commentaires

Oui, tu as raison. Il y a la même réponse ici: stackoverflow.com/questions/50857789/…


@ D.J. cela l'a fait! INSANE comment il n'y a pas de documentation à ce sujet. Ce que la plupart des développeurs feront (regarder l'historique des modifications du point de vue des fichiers) n'est pas documenté. Si ce n'est pas documenté, comment le saviez-vous?


@MichaelMcCarthy si je connais le portail Web de tfs / devops peut me fournir une fonction ou des données que je ne trouve pas dans la documentation rest-api, j'ouvre les outils de développement Web et trace les demandes et les réponses de mon navigateur. cela peut fonctionner mais j'ai dû me fier à cela trop de fois à mon goût: /



0
votes

En fonction de la version d'API que vous utilisez, voici les informations de référence pour les ensembles de modifications.

https://docs.microsoft.com/en-us/rest/api/azure/devops/tfvc/changesets/get%20changesets?view=azure-devops-rest-5.0

l'URL principale est: GET {tfsurl}/{organization}/{project}/_apis/tfvc/changesets?api-version=5.0


1 commentaires

Bien que cela puisse théoriquement répondre à la question, il serait préférable d'inclure les parties essentielles de la réponse ici et de fournir le lien pour référence .



0
votes

Vous pouvez également le faire avec TfvcHttpClientBase.GetChangesetsAsync et la propriété ItemPath de TfvcChangesetSearchCriteria

Voici un exemple dans Powershell

 $tfvcSearchCriteria = [Microsoft.TeamFoundation.SourceControl.WebApi.TfvcChangesetSearchCriteria]::new()
 $tfvcSearchCriteria.FollowRenames = $true
 $tfvcSearchCriteria.ItemPath = $ItemPath

 $result = $TfvcHttpClient.GetChangesetsAsync($null, $null, $null, $null, $tfvcSearchCriteria).Result


0 commentaires