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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (83)

如何从TFS 2010导出历史记录,其中包括用户、日期和完整注释(而不是截断)?

例如,在TeamExplorer中:右键单击TeamElementName>显示签入历史记录。这将显示用户的签入历史记录,但注释被截断。

提问于
用户回答回答于

最简单的方法是从EXCEL连接TFSWharehouse,然后在Excel表中从源代码控制历史记录中提取数据。这真的很简单而且非常强大。

当无法访问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));
}
用户回答回答于

这里有三个选择:

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

一号可能是最简单的,所以我先从这个开始。可以阅读tf历史记录命令的文档。为了得到非截断的注释,需要使用/Format:Details选项。如果想了解所有的历史,请尝试这样的方法:

tf history $/ /r /format:detailed /noprompt

如果要查找给定用户的所有更改集,请尝试如下:

tf history $/ /r /format:detailed /user: /noprompt

这将产生相当数量的文本输出,需要解析这些输出才能将其放入Excel中。试一试,如果你对选项2或3感兴趣,让我知道,我可以给你更多的细节。

扫码关注云+社区