我们目前在工作中同时使用 Visual Source Safe 和 Team Foundation Server(VSS 用于旧项目,TFS 用于当前或新项目)。
我们一直在每次构建的源代码控制中使用标签。在 VSS 中,如果您选择查看文件历史记录,您可以包含标签。在 TFS 中,我找不到将标签包含在历史窗口中的选项。
由于支持或管理层问我的最常见问题之一是“我们修复/添加/删除/更改 xxxx 的版本是什么?”,我一直依赖历史中显示的构建标签。
我可以让标签显示在文件历史记录中吗?
在 2008 版的 TFS 中,您不会在文件和文件夹的标准历史记录中看到标签。如果您真的想知道原因 - 请参阅 Brian Harry 的博客文章“为什么 TFS 标签不像 VSS 标签”。
要在 Visual Studio 中查找标签,请转到文件、源代码管理、标签、查找标签...从中可以看到该标签中包含哪些文件版本。
团队肯定听说这并不理想,下一个版本的 TFS(Team Foundation Server 2010,代号为“Rosario”)将包括对历史视图的改进,以使标签更容易找到 - 请参阅http://go.microsoft .com/?linkid=7807943以了解 TFS 2010 中历史视图的改进规范。
顺便说一句 - 我实际上使用 TFS 转移到基于变更集的构建编号,这使得标记的必要性降低。有关详细信息,请参阅http://www.woodwardweb.com/vsts/changeset_based.html 。
希望有帮助,
马丁。
这个问题一直在扼杀我们。
我发现的最佳解决方案是使用名为 Team Foundation SideKicks 的第三方工具,可在此处免费获得http://www.attrice.info/cm/tfs/。
在“History Sidekick”下有一个标签选项卡。您可以突出显示任何文件夹或文件,它会显示放置在该文件夹或文件上的每个标签以及更改集的位置。不幸的是,您无法查看包含标签的文件夹或文件历史记录的完整视图。
在“Label Sidekick”下,您可以突出显示任何特定标签,它可以告诉您标签中有哪些文件夹/文件和变更集。此功能与 Visual Studio 中可用的功能几乎相同,但没有那么有用。
一个警告是需要 TFS 服务器 2008 或更高版本。在 TFS server 2005 上使用该工具非常缓慢并且基本上无法使用。
-ephi
[由于 TFS 样式标签的复杂性,这在应用于文件夹时是一个相当困难的问题;根据上面的评论,我假设在文件上搜索标签就足够了]
不幸的是,这是在 tf.exe 或 VS2008 的任何地方都没有公开的 TFS 客户端 API 的极少数边缘案例之一。您必须直接调用 API。请参阅http://msdn.microsoft.com/en-us/library/bb138967.aspx - “versionFilterItem”参数可以满足您的需求。
TFS 2010 在任何分支的历史中都有一个非常有用的“标签”视图(而不是“变更集”)。不幸的是,它只显示您选择的分支中的标签,而不是所有子分支/文件夹中的标签。
我开始尝试创建自己的 SQL 来执行此操作并直接针对 TFS 数据库本身运行它。这个 SQL 是针对 TFS 2008 运行的。这个小片段将显示所有分支的所有标签和变更集,首先使用最近创建的分支/修改的标签进行排序。开发此功能的下一步将以某种方式遍历变更集和标签,以仅带回我感兴趣的区域(例如“主要”或某些特定分支)。我想如果我创建了可以完成所有这些操作的 SQL,它会很慢,并且没有完整的 GUI,我想深入了解特定文件的历史记录,查看带有该文件的标签等。叹息。
select DisplayName, cs.CreationDate, Comment, 'CheckIn'
from TfsVersionControl.dbo.tbl_Identity i, TfsVersionControl.dbo.tbl_ChangeSet cs
where cs.ownerid = i.IdentityId
union
select DisplayName, LastModified, Comment, 'Label'
from TfsVersionControl.dbo.tbl_Identity i, TfsVersionControl.dbo.tbl_Label l
where l.ownerid = i.IdentityId
order by 2 desc
我以前为此使用过TFS 分支历史记录。它不是世界上最好的用户界面,只允许您显示每个文件的历史记录,但它可以完成工作。