22

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

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

4

5 回答 5

20

您在这里有 3 个选项:

  1. 解析 tf.exe 历史命令的输出。
  2. 针对 TFS 客户端对象模型编写代码。
  3. 直接针对 TFS 数据库编写查询。

1 号可能是最简单的,所以我将从它开始。您可以在此处阅读 tf history 命令的文档。为了使注释不被截断,您需要使用 /format:detailed 选项。如果您想要所有历史记录,请尝试以下操作:

tf 历史 $/ /r /format:detailed /noprompt

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

tf 历史 $/ /r /format:detailed /user: /noprompt

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

于 2012-04-24T01:45:59.307 回答
9

最简单的方法是从 excel 连接到 TFSWharehouse,然后从 excel 表中的源代码管理历史记录中提取数据。这真的很简单,也很强大。

你会在这里找到有用的信息:http ://www.woodwardweb.com/vsts/getting_started.html

编辑:

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

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));
}
于 2012-04-24T11:01:27.533 回答
2

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

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

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

于 2018-07-16T14:25:31.137 回答
2

Visualstudio.com 的比上述更简单的再现

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

您需要最大评论长度来阻止它被截断。上述工具不起作用,但这个工具起作用:http: //www.convertcsv.com/json-to-csv.htm

于 2018-08-29T17:58:30.527 回答
0

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

对于 VS2015,我发现更容易关注的是(大约 20 个变更集)

  1. VS2015 开分店
  2. 右键单击=>查看历史记录=>所有变更集可见
  3. 单击每个变更集==>右键单击=>变更集详细信息
  4. Team Explorer-Changeset 详细信息在右侧打开。
  5. 选择其中一个文件。
  6. 使用Shift 和向下箭头,您可以复制该特定变更集中的整个文件列表。
  7. 粘贴到 Excel 工作表(它复制了带有文件名的文件的路径)

对所有变更集进行了上述操作并获得了我的完整列表。

于 2017-04-03T20:29:02.973 回答