【问题标题】:Can I see TFS file history with labels?我可以查看带有标签的 TFS 文件历史记录吗?
【发布时间】:2010-09-14 07:30:41
【问题描述】:

我们目前在工作中同时使用 Visual Source Safe 和 Team Foundation Server(VSS 用于旧项目,TFS 用于当前或新项目)。

我们总是在每次构建的源代码控制中使用标签。在 VSS 中,如果您选择查看文件历史记录,您可以包含标签。在 TFS 中,我找不到将标签包含在历史窗口中的选项。

由于支持人员或管理层向我提出的最常见问题之一是“我们修复/添加/删除/更改 xxxx 的版本是什么?”,我一直依赖历史记录中显示的构建标签。

我可以让标签显示在文件历史记录中吗?

【问题讨论】:

  • 查看以下答案之一中提到的 attrice 标签搭档。它很棒。

标签: tfs labels


【解决方案1】:

在 2008 版的 TFS 中,您不会在文件和文件夹的标准历史记录中看到标签。如果您真的想知道原因 - 请参阅 Brian Harry 的博文“Why TFS Labels are not like VSS Labels”。

要在 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

希望对你有帮助,

马丁。

【讨论】:

  • 我确实知道如何在 Visual Studio 中找到标签,但是标签 --> 文件映射在我上面描述的情况下非常无用。
  • 我已经阅读了上面链接的 Brian Harry 的帖子,我可以理解文件夹历史记录中缺少标签,但对于单个文件,标签必须位于文件版本之前或之后。应该可以做到这一点。但它也不在电动玩具中......
  • 如果文件级别的查找就足够了,请查看我的答案。
【解决方案2】:

这个问题一直困扰着我们。

我找到的最佳解决方案是使用名为 Team Foundation SideKicks 的第三方工具,可在此处免费获得 http://www.attrice.info/cm/tfs/

在“History Sidekick”下有一个标签选项卡。您可以突出显示任何文件夹或文件,它会显示放置在该文件夹或文件上的每个标签以及更改集的位置。 不幸的是,您无法查看包含标签的文件夹或文件历史记录的完整视图。

在“标签 Sidekick”下,您可以突出显示任何特定标签,它可以告诉您标签中有哪些文件夹/文件和变更集。此功能与 Visual Studio 中提供的功能几乎相同,但没有那么有用。

需要注意的是需要 TFS 服务器 2008 或更高版本。在 TFS server 2005 中使用该工具非常缓慢,而且基本上无法使用。

-ephi

【讨论】:

  • 是的,我一直用它来进行标签搜索,它很棒。
【解决方案3】:

[由于 TFS 样式标签的复杂性,这在应用于文件夹时是一个相当困难的问题;根据上面的评论,我假设在文件上搜索标签就足够了]

不幸的是,这是 TFS 客户端 API 的极少数边缘案例之一,它没有在 tf.exe 或 VS2008 的任何地方公开。您必须直接调用 API。请参阅http://msdn.microsoft.com/en-us/library/bb138967.aspx - "versionFilterItem" 参数可以满足您的需求。

【讨论】:

    【解决方案4】:

    TFS 2010 在任何分支的历史记录中都有一个非常有用的“标签”视图(而不是“变更集”)。不幸的是,它只显示您选择的分支中的标签,而不是所有子分支/文件夹中的标签。

    【讨论】:

      【解决方案5】:

      我开始尝试创建自己的 SQL 来执行此操作并直接针对 TFS 数据库本身运行它。此 SQL 是针对 TFS 2008 运行的。这个小 sn-p 将显示所有分支的所有标签和变更集,所有分支首先使用最近创建的分支/修改的标签进行排序。开发此功能的下一步将以某种方式遍历变更集和标签以仅带回我感兴趣的区域(例如“主要”或某些特定分支)。我想如果我创建的 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
      

      【讨论】:

        【解决方案6】:

        我以前用过TFS branch history。它不是世界上最棒的 UI,只允许您显示每个文件的历史记录,但它可以完成工作。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-08-10
          • 1970-01-01
          • 2017-02-07
          • 2011-10-28
          • 1970-01-01
          • 2015-10-31
          • 2012-01-25
          相关资源
          最近更新 更多