【发布时间】:2016-05-06 12:54:10
【问题描述】:
我在一个项目团队工作,我们的应用程序在 TFS 中。我试图确定每个团队成员负责多少行代码。在 TFS 中,我知道 Visual Studio 界面中的 Annotate 功能,它允许您查看谁最后修改了每一行代码,因此我知道 TFS 有这些信息。
我编写了一个小型控制台应用程序,它可以访问我的 TFS 项目及其所有文件,但我现在需要以编程方式访问注释,以便查看每行的所有者是谁。这是我现有的代码:
using Microsoft.TeamFoundation.Client;
using Microsoft.TeamFoundation.VersionControl.Client;
public class Program
{
static void Main(string[] args)
{
var credentials = new NetworkCredential(username, password, domain);
var server = new TfsTeamProjectCollection(new Uri(serverUrl), credentials);
var version = server.GetService(typeof(VersionControlServer)) as VersionControlServer;
var items = version.GetItems(projectPath, RecursionType.Full);
var fileItems = items.Items.Where(x => x.ItemType == ItemType.File);
foreach (var fileItem in fileItems)
{
var serverItem = fileItem.ServerItem;
//TODO: retrieve and parse annotations
}
}
}
一旦我拥有 TFS 项目,我似乎无法弄清楚如何检索注释。 This 链接解释了如何通过调用 TFPT 来实现,但在实现它 (tfpt annotate /noprompt <filename>) 之后,您只提供每行的最后一个变更集和代码,而不是所有者。
我还发现了一个 Microsoft.TeamFoundation.VersionControl.Server 命名空间,它有一个 Annotation 类。我在我的机器上安装了 TFS 以访问该 DLL,但它似乎对这个问题没有任何帮助。
如何以编程方式访问 TFS 注释以确定文件的一行代码的所有者?
【问题讨论】:
-
@CodeCaster:哈。正如您评论的那样,我刚刚更新了我的问题。答案并不是真正的答案......
-
你能解释一下它没有帮助吗?如果这是真的,那么就没有内置的方法可以做到这一点,也没有任何工具(请注意,直接要求工具是题外话)。但是,您可以使用 TFS API 并编写一个小程序来执行此操作。
-
@CodeCaster:我想真正的问题是 TFS VersionControl 库似乎几乎完全缺乏文档。
标签: visual-studio tfs