2012-01-19 2 views
1

В TFS 2010 сценарий состоит в объединении выбранных наборов изменений через командную строку tf. Предположим, что было 20 наборов изменений, которые должны быть объединены из ветки в основную папку. Я использую командную строку tf для слияния всех 20 наборов изменений. Если в любом из наборов изменений есть конфликт, электронное письмо должно быть инициировано для человека, который зарегистрировал набор изменений. Есть ли все равно, чтобы отправить электронное письмо человеку, который проверит набор изменений?TFS 2010 - слияние наборов изменений

ответ

1

Я думаю, что ваш единственный курорт должен написать приложение, которое будет принимать входные данные sourceBranch, а targetBranch & попытается программно объединить последний из них. Затем он будет запрашивать конфликты, найти список изменений, к которому они принадлежат, и, наконец, отправить электронное письмо владельцу.

следующие основания сильно на работе Евгений Zakhareyev найдено here:

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

namespace DetectConflicts 
{ 
    class Program 
    { 
     static void Main() 
     { 
      TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://TFS:8080/tfs/{Collection}")); 
      var versionControl = teamProjectCollection.GetService<VersionControlServer>(); 

      const string sourceBranch = "$/PathToFROMBranch"; 
      const string targetBranch = "$/PathToTOBranch"; 

      Workspace myWorkspace = versionControl.GetWorkspace("WorkspaceName", "{DOMAIN}\\YourName"); 
      GetStatus getStatus = myWorkspace.Merge(sourceBranch, 
         targetBranch, 
         null, 
         null, 
         LockLevel.None, 
         RecursionType.Full, 
         MergeOptions.None); 

      Conflict[] conflicts = myWorkspace.QueryConflicts(new[] {targetBranch}, true); 
      foreach (var conflict in conflicts) 
      { 
       string owner = versionControl.GetChangeset(conflict.TheirVersion).Owner; 
       // 
       //send an email to "owner" 
       // 
       ... 
      } 
     } 
    } 
} 
+0

спасибо за ваш ответ. Я не разработчик. Я парень QA, если возможно, вы можете дать мне точное решение. –