2012-08-15 21 views
10

Tôi muốn tạo danh sách các ứng cử viên hợp nhất giữa hai nhánh bao gồm các nhận xét thay đổi ở định dạng mà tôi có thể sao chép dán trong email.Làm cách nào để nhận các nhận xét thay đổi với các ứng viên hợp nhất từ ​​một lệnh dòng lệnh TFS?

Tôi biết tôi có thể làm lệnh tf này:

tf merge /candidate $/Branch1 $/Branch2 

nào trả về một cái gì đó này:

Changeset Author       Date 
--------- -------------------------------- ---------- 
    22282 developer1      08/09/2012 
    22354 developer2      08/14/2012 
    22361 developer2      08/14/2012 
    22365 developer2      08/14/2012 
    22381 developer3      08/15/2012 

Tuy nhiên, tôi muốn để có được những nhận xét là tốt. Thuật sĩ Merge thực hiện một việc tương tự khi thực hiện việc hợp nhất "changesets". Dưới đây là một ví dụ:

enter image description here

Tôi đã suy nghĩ rằng tôi có thể có thể kết hợp tf merge /candidate một cách nào đó với lệnh này:

tf changeset /noprompt 12345 

Những kết quả đầu ra một cái gì đó như thế này:

Changeset: 12345 
User: developer1 
Date: Thursday, August 09, 2012 5:20:01 PM 

Comment: 
    Completed various things 

Items: 
    merge, edit $/Branch1/BreakFreely.asmx.vb 
    merge, edit $/Branch1/FreelyBroken.vb 

Work Items: 
    ID Type    State Assigned To Title 
    ----- ------------------- ----- ------------ ----------------------------------------------------------------------------- 
    21406 Sprint Backlog Task Done JoDeveloper1 Fix various things 

Check-in Notes: 
    Code Reviewer: 
    Complete Lyblind 

Tóm lại, kết quả mong muốn của tôi là như sau:

Changeset Author       Date  Comment 
--------- -------------------------------- ---------- -------------------------- 
    22282 developer1      08/09/2012 Fixed random stuff 
    22354 developer2      08/14/2012 Fixed specific stuff 

Bạn nghĩ sao?

Trả lời

3

Trong trường hợp bạn sẵn sàng sử dụng TFS-SDK và viết ứng dụng bảng điều khiển của riêng mình, điều này sẽ khá đơn giản.
Các mục sau có thể hoạt động như một bước nhảy:

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

namespace MergeCandidates 
{ 
    class Program 
    { 
     static void Main() 
     { 
      TfsTeamProjectCollection teamProjectCollection = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("http://TFSURI")); 

      var versionControl = teamProjectCollection.GetService<VersionControlServer>(); 
      var mergeCandidates = 
       versionControl.GetMergeCandidates(@"$/FromPath", 
                @"$/ToPath", RecursionType.Full); 
      foreach (var mergeCandidate in mergeCandidates) 
      { 
       Console.WriteLine(string.Format("{0} {1} {2} {3}", 
               mergeCandidate.Changeset.ChangesetId, 
               mergeCandidate.Changeset.Owner, 
               mergeCandidate.Changeset.CreationDate, 
               mergeCandidate.Changeset.Comment)); 
      } 
     } 
    } 
} 
Các vấn đề liên quan