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

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

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

如何从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感兴趣,让我知道,我可以给你更多的细节。

所属标签

可能回答问题的人

  • 红双喜经典VS中华

    1 粉丝0 提问8 回答
  • 杰西

    5 粉丝1 提问4 回答
  • 浮生长恨欢娱少

    个人站长 · 站长 (已认证)

    51 粉丝2 提问4 回答
  • 滑稽园扛把子

    Swoole Inc · PHP工程师 (已认证)

    135 粉丝0 提问4 回答

扫码关注云+社区