我们正在使用Team Foundation Server(Visual Studio 2010)。
如何以编程方式获取特定代码块的编写器?
答案 0 :(得分:0)
使用TFS API,您可以获得该数据。每个变更集都有一个提交者。我会把提供的代码here。从这里,您可以添加:
foreach (var change in cs.Changes)
{
if (change.Item.ServerItem != serverItem)
{
return;
}
//Get commiter
cs.Committer
虽然这不能让你100%完成任务,但它至少是一个起点。
答案 1 :(得分:-1)
相当简单。
我的博客上有一个工作演示=> http://geekswithblogs.net/TarunArora/archive/2011/06/26/tfs-2010-sdk-smart-merge-programmatically-create-your-own-merge.aspx
我很抱歉我误解了你的问题。您正在寻找的是能够基于TFS中的特定文件路径获取changesetId,然后能够查看该变更集的已修改项目,然后能够在源代码中看到修改并知道作者是谁源变化是。对?
如果这是正确的,你能不能做到以下几点,
public static void GetMergeDetailsForChangeSet()
{
var tfs = TfsTeamProjectCollectionFactory.GetTeamProjectCollection(new Uri("Enter the url of team project"));
var versionControl = tfs.GetService<VersionControlServer>();
var a = versionControl.GetChangeset(12322);
VersionSpec changeSpec = new ChangesetVersionSpec(a.Changes[0].Item.ChangesetId);
var changeSetDetails = a.Changes[0].Item.VersionControlServer.QueryMergesWithDetails(
null,
null,
0,
a.Changes[0].Item.ServerItem,
changeSpec,
a.Changes[0].Item.DeletionId,
changeSpec,
changeSpec,
RecursionType.Full);
}
这有帮助,我可以提供其他详细信息吗?
HTH。
干杯,塔伦
答案 2 :(得分:-2)
MSDN有Annotate选项用于跟踪此类信息,但默认选项是文件级和签入操作。对于这样的信息,我们通常使用代码注释,它可能不是那么专业但是很好。