2015-07-21 14 views
6

Tôi đang cố triển khai plugin cho Team Foundation Server 2010 sẽ tạo báo cáo về người dùng trong dự án nhóm. Về mặt khái niệm, tất cả những gì tôi cần để thực hiện đúng plugin này là truy cập vào cùng một dữ liệu mà bạn nhận được khi bạn sử dụng tính năng "Chú thích" trong Visual Studio: Tôi cần phải biết ai là người cuối cùng tác giả dòng mã.Lập trình dữ liệu TFS đổ lỗi (chú thích) theo cách lập trình

Tôi đã xóa Internet để tìm tài liệu hoặc mẫu mã, nhưng tất cả những gì tôi có thể tìm thấy là một trong hai đề xuất như using the TFS command-line tools hoặc dường như không đầy đủ code samples.

Tôi không quan tâm làm rất nhiều công việc nặng trong mã khách hàng, nhưng có vẻ không phải là một cách rõ ràng để có được dữ liệu tác giả hữu ích về nội dung của mã trong một Changeset, cũng không phải từ trả lại merge details.

Trả lời

3

Trong khi đó tôi tìm thấy một giải pháp làm việc mà thực hiện Team Foundation Power Tools xử lý và phân tích sản lượng của nó:

private readonly Regex m_Regex = new Regex(@"^(?<changeset>\d+)(?<codeLine>.*)", RegexOptions.Compiled | RegexOptions.Multiline); 

public List<Changeset> GetAnnotations(string filepath, string codeText) 
    { 
     var versionControlServer = CreateVersionControlServer(); 

     return m_Regex.Matches(ExecutePowerTools(filepath)) 
      .Cast<Match>() 
      .Where(m => m.Groups["codeLine"].Value.Contains(codeText)) 
      .Select(v => versionControlServer.GetChangeset(int.Parse(v.Groups["changeset"].Value), false, false)) 
      .ToList(); 
    } 

    private static VersionControlServer CreateVersionControlServer() 
    { 
     var projectCollection = new TfsTeamProjectCollection(new Uri(@"TFS URL")); 
     var versionControlServer = projectCollection.GetService<VersionControlServer>(); 
     return versionControlServer; 
    } 

    private static string ExecutePowerTools(string filepath) 
    { 
     using (var process = Process.Start(TfptLocation, string.Format("annotate /noprompt {0}", filepath))) 
     { 
      process.WaitForExit(); 
      return process.StandardOutput.ReadToEnd(); 
     } 
    } 
+1

Tôi vừa mới triển khai điều này và nó không cho bạn biết chủ sở hữu của từng dòng, chỉ thay đổi và mã ... – im1dermike

+0

@ im1dermike, bạn đã đúng. Nó đủ tốt cho trường hợp sử dụng của tôi. –

0

tôi đã yêu cầu rất giống nhau để có được thông tin chi tiết của thuộc tính cụ thể trong một tập tin ví dụ người đã thêm, khi nào, các mục công việc liên quan, v.v. Sau dự án GitHub là có thực hiện để có được chi tiết cần thiết và yêu cầu thay đổi tối thiểu để work-

SonarQube SCM TFVC plugin

Nó đòi hỏi phân tích được thực hiện từ các máy tính Windows với Team Foundation Server Object Kiểu cài đặt (tải về cho TFS 2013).

Các vấn đề liên quan