Как получить все неслитые наборы изменений для ветки с помощью TFS 2010 SDK?

На данный момент у меня есть 2 ветки - Development и Release.

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

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


person Kiril Stanoev    schedule 20.11.2011    source источник
comment
возможно дублирование stackoverflow.com/questions/8121366/   -  person Khh    schedule 20.11.2011


Ответы (2)


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

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 
  }
}
person pantelif    schedule 21.11.2011

Взгляните на codeproject, если стандартные окна не соответствуют вашим потребностям.

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

SDK TFS 2010: Smart Merge — Программное создание свой собственный инструмент слияния

Изменить

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

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

person Khh    schedule 20.11.2011