Получить идентификаторы изменений из слияния - PullRequest
1 голос
/ 24 апреля 2019

В TFVC вы можете объединить наборы изменений из ветви A в ветку B. Можно ли посмотреть, какие наборы изменений - в частности, какие идентификаторы - из ветви A были объединены в ветку B?

Ответы [ 2 ]

1 голос
/ 25 апреля 2019

Вы можете использовать следующий скрипт:

$tfsUrl = "http://{Server}:{Port}/{Organization}/{Collection}"
$destinationBranchPath = "$/..."
$sourceBranchPath = "$/..."

# Change top with count of changesets you want to check
$body = 'repositoryId=&searchCriteria={"itemPath":"'+ $destinationBranchPath+'","itemVersion":"T","top":50}'
#Get top X changesets under destinationBranchPath
$changeSets  = (Invoke-RestMethod -Method post   "$tfsUrl/{Project}/_api/_versioncontrol/history?__v=5" -Body $body -UseDefaultCredentials).results 

#Run over all changesets and check if sourceBranchPath is part of merage soruce path 
foreach($changeSet in $changeSets)
{
   $IsMerged = (Invoke-RestMethod -Method Get  "$tfsUrl/_apis/tfvc/changesets/$($changeSet.changeList.changesetId)/changes" -UseDefaultCredentials).value.mergeSources.serverItem -like "*$sourceBranchPath*"
   if($IsMerged)
   {
        #Print results 
        Write-Output $changeSet.changeList
   }
}
0 голосов
/ 25 апреля 2019

Используя инструмент командной строки tf.exe, команда merges может предоставить историю слияния между двумя ветвями.

Итак, в моем примере из корневой папки управления исходным кодом на моем локальном компьютере я могу запустить следующую команду в выбранной оболочке tf vc merges a b /recursive, чтобы получить список наборов изменений из a, которые были включены в слияния с b

Changeset Merged in Changeset Author                           Date
--------- ------------------- -------------------------------- ----------
   20096                20292 Joey Bloggs                      30/04/2018
   20102                20292 Joey Bloggs                      30/04/2018
   20103                20292 Joey Bloggs                      30/04/2018

Где первый столбец содержит набор изменений из ветви a, а второй столбец - набор изменений, который объединил его в ветку b.

Чтобы это работало, мне пришлось добавить папку tf.exe в мою переменную PATH.

...