2

这似乎不是一个问题或答案。我需要使用 TFS2008 来查询用户的变更集并将结果导出到 Excel。

问题是我不仅需要签入的变更集编号、用户和日期,还需要受签入影响的文件。毫无价值的是,我有一位同事提出了他不久前进行的类似查询的结果,但他不记得它是如何完成的。

我已使用源代码管理资源管理器中的 Ctrl+G 来查询变更集,但此对话框不允许我导出到 Excel,并且除非我双击变更集,否则不会显示受影响的文件。尝试通过单击对话窗口手动编写所有这些将是非常劳动密集型的。也许有办法通过工作项查询实用程序来做到这一点?任何帮助,将不胜感激。

以下是我需要的格式示例:

在此处输入图像描述

谢谢。

4

2 回答 2

1

希望这可以帮助你

SELECT TOP 10
V.ChildItem AS [File Modified],
V.Command AS [Check-In-Action],
V.ParentPath AS [Modified File Path],
CS.ChangeSetId,
CS.CreationDate AS [Date]
FROM tbl_Changeset CS
INNER JOIN tbl_Identity I ON I.IdentityID = CS.OwnerID
INNER JOIN tbl_Version V ON V.VersionFrom = CS.ChangesetID
ORDER BY CS.CreationDate DESC

这里 V.Command 代表

* Edit = 2
* Type = 4
* Add folder = 5
* Add file = 7
* Rename = 8
* Rename,edit = 10
* Delete = 16
* Delete,rename = 24
* Undelete = 32
* Undelete,edit = 34
* Branch = 68
* Branch,delete = 84
* Merge = 128
* Merge, edit = 130
* Merge,type,edit = 134
* Merge, rename, edit = 138
* Merge,delete = 144
* Merge,delete,rename = 152
* Merge,undelete = 160
* Merge,undelete,edit = 162
* Merge,branch = 196
* Merge,branch,edit = 198
于 2011-09-26T07:50:21.310 回答
0

我不认为你可以从 VS 接口构建一个返回这样一个结果集的查询。您最好的选择是直接查询数据库。

文件名可能在 TFS 仓库中找不到,因为它包含在仓库中的细节太多,因此您可能必须直接查询实际的 TFS 数据库。值得注意的是,“直接访问 TFS DB”不是微软推荐或支持/记录的,但你必须做你必须做的事情。(小心,永远不要改变数据库中的任何东西)

我已经尝试为您构建示例查询,但我使用的是 TFS2010。数据库和仓库模式在 TFS 2010 中都发生了巨大变化,因此我的查询对您没有任何帮助。

如果您设法构建查询,则可以通过 Excel 运行它并将结果直接输入 Excel。

于 2011-07-29T08:10:27.427 回答