将TFS 2010历史记录导出到Excel或文本文档

时间:2012-04-23 14:27:11

标签: tfs export

如何从TFS 2010导出包含用户,日期和完整评论(未截断)的历史记录?

例如,在团队资源管理器中:右键单击团队成员名称>显示登记历史。这将显示用户的登记历史记录,但评论会被截断。

5 个答案:

答案 0 :(得分:16)

这里有3个选项:

  1. 解析tf.exe历史命令的输出。
  2. 针对TFS客户端对象模型编写代码。
  3. 直接针对TFS数据库编写查询。
  4. 1号可能是最简单的,所以我会从那开始。您可以阅读tf history命令here的文档。为了使注释不被截断,您需要使用/ format:detailed选项。如果你想要所有的历史,试试这样的事情:

    历史$ / / r /格式:详细/ noprompt

    如果您要查找给定用户的所有变更集,请尝试以下操作:

    历史记录$ / / r /格式:详细/用户:/ noprompt

    这将产生大量的文本输出,您需要将其解析为能够将其放入Excel中。试一试,如果您对选项2或3感兴趣,请告诉我,我可以为您提供更多详细信息。

答案 1 :(得分:8)

最简单的方法是从excel连接到TFSWharehouse,然后从excel表中的源控制历史记录中提取数据。这非常简单而且非常强大。

您可以在此处找到有用的信息:http://www.woodwardweb.com/vsts/getting_started.html

修改

当您无权访问SSAS时使用TFS API枚举变更集(例如tfspreview.com):

TeamProjectPicker tpp = new TeamProjectPicker(TeamProjectPickerMode.SingleProject, true);
tpp.ShowDialog();

var tpc = tpp.SelectedTeamProjectCollection;

VersionControlServer versionControl = tpc.GetService<VersionControlServer>();

var tp = versionControl.GetTeamProject("MyTeamProject");
var path = tp.ServerItem;

var q = versionControl.QueryHistory(path, VersionSpec.Latest, 0, RecursionType.Full, null, new ChangesetVersionSpec(1), VersionSpec.Latest, Int32.MaxValue, false, true, false, false);

foreach (Changeset cs in q)
{
    var user = cs.Owner;
    var comment = cs.Comment;
    var date = cs.CreationDate;

    Debug.WriteLine(string.Format("[{3}] Date: {0}, User: {1}, Comment {2}", date, user, comment, cs.ChangesetId));
}

答案 2 :(得分:1)

您也可以像这样使用TFS Rest API:-

https://{accountName}.visualstudio.com/{project}/_apis/tfvc/changesets?
searchCriteria.author={userName}&$top=100

这将生成一个JSON,您可以将其上传到https://json-csv.com/之类的任何在线站点并获取CSV。

答案 3 :(得分:0)

这实际上不是自动导出,而是考虑共享。

对于VS2015我发现更容易跟随(大约20个变更集)

  1. 在VS2015中打开分支
  2. 右键单击=&gt;查看历史记录=&gt;所有变更集可见
  3. 点击每个更改集==&gt;右键单击=&gt;更改集详细信息
  4. Team Explorer-Changeset Details on Right。
  5. 选择其中一个文件。
  6. 使用 Shift和向下箭头,您可以复制该特定变更集中的整个文件列表。
  7. 粘贴到Excel工作表(它复制了带有文件名的文件路径)
  8. 为所有变更集做了以上,并获得了我的完整列表。

答案 4 :(得分:0)

比上述visualstudio.com更为简单的格式

https:// {accountName} .visualstudio.com / {project} / _apis / tfvc / changesets?$ top = 10000&maxCommentLength = 2000

您需要最大注释长度才能阻止其被截断。 上面的工具不起作用,但是这个工具可以起作用:http://www.convertcsv.com/json-to-csv.htm