TFS:标签与变更集

lac*_*dev 34 tfs label changeset

我正在尝试提出有关使用TFS源代码控制的最佳实践.现在,无论何时我们进行构建,我们都会使用版本号标记检入TFS的文件.这种方法比简单地检查文件并在评论中包含版本号更好还是更差?您是否可以根据需要使用变更集或标签仍然更通用?

谢谢!

Ale*_*lex 35

它们有两个不同的用途,ChangeSets是指文件实际发生了变化,并且您希望保留该变更的永久记录.标签标记某个版本的文件,以便您可以轻松返回到该点.除非您的构建实际上更改了源代码管理下的文件,并且您希望记录这些更改.你应该贴上标签.

此外,标签的资源密集程度要低得多.并且您可以在同一版本的文件上拥有多个标签.

  • 标签可能很吓人,它们只能应用于部分代码库,它们可以在事后更改,并且可以删除.CS编号是常数.它无法更改,应始终获取最新版本(除非TFS管理员使用Destroy从源代码管理中删除文件,标签也无法恢复).根据我的经验,标签很好,因为你可以给它一个人类可读的名字,并可以搜索.作为替代方案,CS编号可以正常工作. (16认同)

Meh*_*ras 7

您应该标记构成构建的源文件的版本.如果您正在使用TeamBuild,它会自动为您执行此操作.它结合了构建定义的名称,日期和构建号.所以你不需要做任何事情.

您的其他选择不是很传统,需要大量不必要的工作.如果我理解正确,您将在构建过程中检出源文件,然后使用签入注释中指定的版本号重新检入它们.这就像Alex在构建过程和源代码控制存储库方面提到的资源非常密集.此外,如果版本信息嵌入在评论中,您将如何获取特定版本的源文件?这将是非常困难的,您将不得不坐下来编写自己的应用程序,使用TFS源代码控制API将源文件下载到工作区,方法是在签入注释中搜索版本号.这会造成不必要的复杂性和麻烦.

如果您使用标签,则可以在VS IDE中执行get by标签以下载构成该标签的源文件.您甚至可以告诉TeamBuild使用标签,而不是在构建自动化期间下载最新的源文件.这样您就可以轻松构建应用程序的早期版本.使用标签时,如果通过简单地获取标签然后获取特定变更集然后执行快速标签或创建全新标签,您还可以将更改集应用于现有标签.

标签非常强大,使用方便,是TFS的一部分.而不是提出需要付出很多努力才能使其工作和维护的自定义解决方案,而只是尝试使用已有的解决方案.