Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java TFS SDK-如何获取在特定提交中所做的更改_Java_Tfs_Tfs Sdk - Fatal编程技术网

Java TFS SDK-如何获取在特定提交中所做的更改

Java TFS SDK-如何获取在特定提交中所做的更改,java,tfs,tfs-sdk,Java,Tfs,Tfs Sdk,我能够在项目中获得构建定义列表。然后获取每个构建定义下的构建,并提交每个构建下的详细信息。现在我在提交细节中只得到6个字段 Author CommitId Committer Message Timestamp Uri 但是我找不到任何api来获取在提交中所做的更改。我想在提交更改中进行一些字符串分析,以获得一个值。是否可以使用TFS SDK通过各自的提交来获取提交更改?假设您正在尝试从指定的生成中获取关联的更改集摘要。那你是在找 检查哪些选项可以帮助您: " 经过一番努力,我终于找到了解决方

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

Author
CommitId
Committer
Message
Timestamp
Uri

但是我找不到任何api来获取在提交中所做的更改。我想在提交更改中进行一些字符串分析,以获得一个值。是否可以使用TFS SDK通过各自的提交来获取提交更改?

假设您正在尝试从指定的生成中获取关联的更改集摘要。那你是在找

检查哪些选项可以帮助您:

"

经过一番努力,我终于找到了解决方案。更改集已重命名为提交,以支持TFS 2013的git支持。因此,当您获得构建详细信息时,您需要请求该数据,如下所示:

var buildDetailSpec = _buildServer.CreateBuildDetailSpec(buildDefinitionUris);
buildDetailSpec.InformationTypes = new[] { "AssociatedCommit" };
var commits = buildDetail.Information.GetNodesByType("AssociatedCommit");
var author = commits.First().Fields["Author"];
var comments = commits.First().Fields["Message"];
然后像往常一样执行查询:

var buildQueryResult = _buildServer.QueryBuilds(new [] { buildDetailSpec });
var buildDetail = buildQueryResult[0].Builds;
然后检索提交,而不是变更集,如下所示:

var buildDetailSpec = _buildServer.CreateBuildDetailSpec(buildDefinitionUris);
buildDetailSpec.InformationTypes = new[] { "AssociatedCommit" };
var commits = buildDetail.Information.GetNodesByType("AssociatedCommit");
var author = commits.First().Fields["Author"];
var comments = commits.First().Fields["Message"];

TFS SDK for Java没有提供与Git存储库交互的完整功能。有一个Rest API可以很容易地实现,但它仅在TFS 2015中受支持。由于您使用的是TFS 2013,另一种方法是获取有关提交的详细信息。

提交详细信息是否表示生成详细信息?或者您是指构建下的相关更改?通常,生成详细信息中有定义、源版本、请求者和排队时间、开始时间和完成时间,其中没有任何更改。您使用的TFS版本是什么?TFS 2015?@Eddie MSFT,TFS 2013是的,我在一个可能包含一个或多个提交的构建下进行了关联提交。我已经获得了每个提交下的6个字段。但它不包括在提交中所做的更改(可能称为更改集?)(如在该提交中执行的文件添加/更新/删除)。实际上,我需要获取每个提交的RCS文件夹名称(即文件更改所在的文件夹)。Java SDK有可能吗?@代码员:恐怕答案是否定的。