Как получить все неотправленные наборы изменений для ветви, используя TFS 2010 SDK? - PullRequest
2 голосов
/ 20 ноября 2011

В настоящее время у меня есть 2 отделения - разработка и выпуск.

Можно ли получить все необработанные наборы изменений от разработки к выпуску?

В настоящее время мы используем Merge Wizzard по умолчанию. Однако у него есть одно большое ограничение - он не может фильтроваться пользователем. Поэтому я думал о создании приложения, которое будет перетаскивать все незавершенные наборы изменений из разработки в выпуск и позволять мне фильтровать эти наборы изменений по пользователю.

Ответы [ 2 ]

4 голосов
/ 21 ноября 2011

Вы можете написать небольшое консольное приложение, которое выглядит так:

using System;
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;

namespace UnmergedChangesets
{
    class Program
    {
        static void Main(string[] args)
        {
            TfsTeamProjectCollection tpc = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://myserver:8080/collection"));
            VersionControlServer vcs = (VersionControlServer) tpc.GetService(typeof (VersionControlServer));
            MergeCandidate[] mergeCandidates = vcs.GetMergeCandidates("$/Development", "$/Release", RecursionType.Full);
        }
    }
}

Таким образом, вы попадаете в mergeCandidates всех наборов изменений, которые отсутствуют в вашей Release ветви.

Если вы хотите выполнить дополнительную фильтрацию для определенного пользователя, вы можете сделать это примерно так:

foreach (var mergeCandidate in mergeCandidates)
{
  if(mergeCandidate.Changeset.Owner == @"DOMAIN\ChuckNorris")
  {
    //This is an unmerged changeset commited by Chuck 
  }
}
1 голос
/ 20 ноября 2011

Посмотрите на codeproject, если вы не соответствуете стандартным окнам.

Кто-то сделал такой тип приложения, чтобы вы могли посмотреть, как оно работает

TFS 2010 SDK: Smart Merge - программно создайте свой собственный инструмент Merge

Edit

Я забыл, я работаю с этим шаблоном проекта для VS2010

Шаблон проекта Visual Studio 2010 для утилит TFS

...