gpt4 book ai didi

.net - 试图通过使用 TFS 查看项目中的给定文件名及其行号来获取代码的编写者

转载 作者:行者123 更新时间:2023-12-05 00:37:33 25 4
gpt4 key购买 nike

我正在尝试编写一个将使用 TFS API 的小型应用程序。

我将有一个方法,该方法采用三个参数,例如项目名称、文件名和行号。然后它给了我写这部分代码的人的名字。

public string GetProgrammer(string projectname, string file, int linenumber)
{

//implementation

return programmerName;
}

我已经对 TFS API 进行了一些搜索,但找不到解决此问题的确切信息。 TFS API 是否提供此信息?

提前致谢,

最佳答案

很好的问题。但是,没有可用于执行此操作的直接方法。相反,您需要执行以下操作,

public string GetProgrammer(string projectname, string file, int linenumber)
{
// 1. Connect To TFS get the project name that you have passed
var tfs = TfsTeamProjectCollectionFactory
.GetTeamProjectCollection(new Uri("TfsUrl"));
var vsStore = tfs.GetService<VersionControlServer>();
var myProject = vsStore.TryGetTeamProject(projectName);

// 2. Use the versionControlServer Service and get a history
// i.e. all changesets that fall under the parent 'filename'
// with recursion.none
var histories = service.GetBranchHistory(
new ItemSpec[] { new ItemSpec (filePath, RecursionType.None) },
VersionSpec.Latest);

// 3. Loop through each changeset and build your code block adding
// the name of the user who owns the changeset in a List.
foreach (BranchHistoryTreeItem history in histories[0])
{
var change = service.GetChangeset(
history.Relative.BranchToItem.ChangesetId,
true,
true);

if (change.WorkItems.ToList().Count == 0)
{
// Create your file compiling the changes from each check-in
// and lets say store in stream
}
}

// 4. Now pass the line number, in what ever code block it falls
// you should get the details of the user, changeset and other details
// to return.
// Query the stream build in the last step for the line number
return programmerName;
}

一些悬而未决的问题,
- 在开发一个文件的过程中,多个用户多次修改了同一行或者更确切地说是同一 block 代码。你打算如何处理?

查看这些博客文章,它们可能会帮助您开始连接到 TFS,使用 versionControlServer 获取文件的变更集并循环访问变更集。 http://geekswithblogs.net/TarunArora/category/12804.aspx

高温高压
干杯,塔伦

关于.net - 试图通过使用 TFS 查看项目中的给定文件名及其行号来获取代码的编写者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6744510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com