【发布时间】:2010-10-24 11:05:54
【问题描述】:
我正在尝试通过 Visual Studio Team Explorer 中的 TFS 查询编辑器获取所有签到的列表(限制/按日期排序)。
我可以查询列出所有错误、冲刺积压项目或产品积压项目,但我找不到实际签入。是否有可能或者我应该直接在数据库上进行(SQL)查询。
想法?
【问题讨论】:
标签: visual-studio version-control tfs
我正在尝试通过 Visual Studio Team Explorer 中的 TFS 查询编辑器获取所有签到的列表(限制/按日期排序)。
我可以查询列出所有错误、冲刺积压项目或产品积压项目,但我找不到实际签入。是否有可能或者我应该直接在数据库上进行(SQL)查询。
想法?
【问题讨论】:
标签: visual-studio version-control tfs
只需打开 Team Explorer 窗口,展开 TFS 项目,然后双击那里的 Source Control 节点。
然后您只需在 TFS 源代码管理中右键单击项目或目录并选择查看历史记录,即可获得所有提交。
【讨论】:
tf command-line utility(可通过 VS2010 命令提示符获得)提供了一种检索指定文件或文件夹的所有签入历史记录的方法。
具体来说,tf history command 允许按日期范围进行过滤。例如,要获取当前六月的所有签到(即 2011 年 6 月 1 日 - 2011 年 6 月 30 日),然后使用带有日期选项的\version 参数 (D"[start date]"~"[end date]"):
tf history c:\MyProject /recursive /version:D"06/1/11"~D"06/30/11"
这将启动一个交互式 GUI 窗口,显示在这些日期之间发生的所有签到。 GUI 窗口相当于 Visual Studio 中显示的历史记录窗口。因此,您可以深入查看变更集详细信息、将文件与以前版本进行比较等。
如果您只是想在没有 GUI 窗口的情况下查看历史列表,请添加参数/noprompt:
tf history c:\MyProject /recursive /version:D"06/1/11"~D"06/30/11" /noprompt
这会将结果输出到命令提示符控制台窗口。
【讨论】:
USE TfsVersionControl
select distinct top 100 c.CreationDate,c.Comment,u.DisplayName, v.Fullpath
from tbl_changeset as c
join tbl_identity as u on u.Identityid = c.OwnerId
join dbo.tbl_Version as v on v.Versionfrom = c.ChangeSetId
Order by c.CreationDate desc
这是我为查看最近的更改而制作的 sql 报告。
【讨论】:
这是我们使用的
USE [Tfs_DefaultCollection]
SELECT distinct cs.CreationDate, cs.[ChangeSetId], c.DisplayPart, cs.[Comment]
from [tbl_ChangeSet] AS cs
left outer JOIN [tbl_Identity] AS i ON cs.[OwnerId] = i.[IdentityId]
left outer JOIN [Constants] AS c ON i.[TeamFoundationId] = c.[TeamFoundationId]
left outer join dbo.tbl_Version as v on v.Versionfrom = cs.ChangeSetId
WHERE creationdate > '04/12/2012'
and (v.fullpath like '%\Web%'
or v.FullPath like '%\Databases%')
ORDER BY cs.[CreationDate] desc
【讨论】:
查看TFS Sidekick from Attrice。这是我经常使用的一个非常好的免费工具。它有一个历史辅助工具,允许您在 UI 左侧选择的源树节点上按用户查询变更集。您可以按日期对结果进行排序。您还可以右键单击变更集以查看文件和工作项等详细信息。
【讨论】:
您可以通过右键单击解决方案资源管理器或源代码管理资源管理器窗口中的文件/文件夹来查看文件或文件夹的历史记录,然后如果您想要将其复制/粘贴到其他位置,则可以复制/粘贴历史记录的内容。
在您似乎正在谈论的用例中更有趣的是,您实际上可以从 TFS 数据仓库中提取所有此类信息,并在 Excel 中对其进行自己的报告。请查看我就该主题撰写的以下博客文章以获取更多信息:
【讨论】: