TFS - 获取变更集范围

时间:2010-03-02 02:01:43

标签: powershell tfs tfs2010 tfs2008

我发现每个版本都是一个很好的做法,回过头来获取所有变更集注意事项以与发行说明进行比较,以确保我们不会遗漏任何内容。由于我们对变更集注释中记录的所有功能更改都进行了详细介绍,因此它们是一种宝贵的资源。

我还没有找到从TFS 2008中提取这些内容的好方法。我尝试了什么:

  • VS历史记录窗口:这只提供前100个字符左右,截断的椭圆样式。
  • TFS Powertools:也许我错过了一些东西,但是我无法获得一个不涉及在评论中屠杀新行的输出格式,所以使任何可用的东西看起来像PITA,但也许PowerShell解决方案在这里会很完美吗?

我所追求的非常简单:

  • 变更集评论
  • ID
  • 日期
  • 用户名(如果可能)

这在一定范围内......无论是日期还是ID限制,都可以。如果我可以将其限制为项目中某个分支中的,那就是巨额奖励。

我现在正在做的就是直接打开TFS SQL Server并在TfsVersionControl数据库上运行它:

SELECT    ChangeSetId, CreationDate, Comment
FROM      tbl_ChangeSet
WHERE     ChangeSetId > 6300

我试过但没有找到一个好的资源,似乎Vertigo博客上的所有伟大的TFS信息已经丢失,因为链接现在已经死了。有没有人有更好/理智的方式来掏出这些信息?格式并不重要,任何表格/ xml /我可以转换成可读的格式都可以。

旁注:我们将在发布一周左右的时间内升级到VS 2010 ......如果答案是VS2010 / TFS2010,那就更好了,因为这是一个长期的解决方案。

2 个答案:

答案 0 :(得分:9)

Team Foundation Power Tools (October 2008)附带PowerShell管理单元(如果您恰好位于Windows x64上,则仅限32位)。试试这个:

Add-PSSnapin Microsoft.TeamFoundation.PowerShell
Get-TfsItemHistory . -Recurse -Version C57460~58090 | 
    fl Comment,ChangesetId,CreationDate,Committer


Comment      : Added printf's in a couple of event callbacks
ChangesetId  : 58090
CreationDate : 2/25/2010 1:46:09 PM
Committer    : ACME\johndoe
...

这确实保留了评论中的换行符。如果您使用的是x64 Windows,请确保从32位(x86)PowerShell提示符运行此命令。

答案 1 :(得分:0)

http://tfschangelog.codeplex.com上有一个这个开源项目,旨在允许用户根据给定范围内每个变更集的chnageset注释和相关工作项指定变更集范围并生成发行说明。

TFS ChangeLog以XML格式提取信息,然后使用XSLT 2.0将其转换为HTML。用户可以定义自己的样式,过滤器,输出方法等,以生成有用的发行说明信息。实际上,它为开发人员和测试人员提供了为发布说明提供有意义内容的可能性。

此工具有两种不同的形式,包括桌面版和命令行版。由于支持命令行界面,因此可以安排从Windows调度程序生成发行说明。