2012-01-19 8 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

感謝を。開発者ではありません。可能であれば、あなたは私に正確な解決策を教えてください。 –