我使用 StarTeam 进行版本控制已经有一段时间了,但我正在转向 Subversion。我一直在阅读Subversion 的书,StarTeam 似乎有一个 Subversion 没有的主要功能——标签的概念。我知道 Subversion 有标签,但它们在 StarTeam 中的含义有所不同。在 StarTeam 中,我可以将一组文件标记为“准备构建”,然后只检查这些文件并将其包含在特定版本中。然后我可以创建一个冻结标签,指示该版本中包含哪些文件(类似于 Subversion 标记,除了它在那些特定的修订版上,而不是目录中的所有内容)。
有没有办法在 Subversion 中获得这样的功能?我知道您可以指定要标记的修订版本,但是在您拥有代码并即将发布,并发现错误或有人决定不应包含特定更改的情况下会发生什么。我知道您可以根据存储库和本地工作副本创建标签,但这涉及检查不应包含的文件的特定修订并创建标签。准备好构建“标签”后,您不会将该标签放在您不想要的文件的头部版本上。似乎没有任何自动方法可以为 Subversion 中的构建指定某些修订。这不是应该在分支中开发新功能的情况,但如果修订版位于主干(或您将制作标签的任何地方)中,则更多,但不应包括在内。它可能不需要恢复 - 更改可能是适当的,但在将来的版本中,而不是当前版本。如果您没有具有所需确切文件版本的特定修订,则似乎您必须从存储库和工作副本中手动混合和匹配。
在类似的情况下,如果您在 Subversion 中有不属于发行版并且不需要标记的文件怎么办。在 StarTeam 中,您不会将准备构建标签附加到它们,但在 Subversion 中,似乎所有内容都在目录中。有没有办法从构建和标签中排除这些文件?这是svndumpfilter exclude的用途吗?
简而言之,有没有办法只在标签中包含某些文件的特定修订,或者它必须是存储库中的特定修订,还是存储库和工作副本中文件的手动混合?