Java TFS SDK - 如何在Specfic提交中进行更改

时间:2016-08-25 15:49:05

标签: java tfs tfs-sdk

我能够获得项目中的构建定义列表。然后在每个Build Definition下获取Builds并在每个Build下提交详细信息。现在我只在提交详细信息中获得6个字段。

Author
CommitId
Committer
Message
Timestamp
Uri

但我无法找到任何api来获取该提交中所做的更改。我想在提交更改中进行一些字符串解析以获取值。是否可以通过使用TFS SDK的相应提交来获取提交更改。?

2 个答案:

答案 0 :(得分:1)

TFS SDK for Java不提供与Git存储库交互的完整功能。有一个可以轻松get this information的Rest API,但它仅受TFS 2015支持。由于您使用的是TFS 2013,另一种方法是使用libgit2来获取有关提交的详细信息。 / p>

答案 1 :(得分:0)

假设您尝试从指定的构建中获取关联的变更集摘要。然后你正在寻找InformationNodeConverters.GetAssociatedChangesets Method (IBuildDetail)

检查this case哪个应该对您有所帮助:

"

经过大量的摆弄,我终于找到了解决方案。对于TFS 2013的git支持,Changeset已重命名为Commit。因此,当您获得如下构建详细信息时,您需要询问该数据:

var buildDetailSpec = _buildServer.CreateBuildDetailSpec(buildDefinitionUris);
buildDetailSpec.InformationTypes = new[] { "AssociatedCommit" };

然后像往常一样执行查询:

var buildQueryResult = _buildServer.QueryBuilds(new [] { buildDetailSpec });
var buildDetail = buildQueryResult[0].Builds;

然后你检索提交,而不是变更集,如下所示:

var commits = buildDetail.Information.GetNodesByType("AssociatedCommit");
var author = commits.First().Fields["Author"];
var comments = commits.First().Fields["Message"];

"