TFS 2010构建:基于标签获取工作区部分

3

我在TFS 2010中有一个自动化构建,其中包含以下的工作区:

$/Program 1   $(SourceDir)\Program 1
$/Core        $(SourceDir)\Core

我会先构建核心项目和程序1特定项目,然后作为构建的一部分。但是,在修补之前版本的错误时,我需要获取核心文件的特定标签,但是需要获取程序1文件的最新标签。我如何仅更改核心目录的工作区以通过标签而不是获取最新版本。
我知道我可以从核心文件夹的标签中创建一个分支,但由于错误修复仅涉及程序1文件,因此我不想创建一个没有更改的新分支。
1个回答

1

所以你有一个从不同的团队项目导入代码的解决方案。
这并不是最佳设置,更灵活的替代方案可能是以下内容:

$/Program1
    /SharedSources
       /Core_branch
          Core.csproj
    /Sources
       /Program1
          Program1.csproj
       /Program2
          Program2.csproj
       Sources.sln

如果您已经设置了类似于这样的SCM结构,那么您只需要在构建定义中定义以下内容:
$/Program1 $(SourceDir)

因此,如果您在过去版本的Program1上遇到问题,您可以继续使用Hotfix分支而不会面临当前的挑战。关于源代码控制中TFS分支和解决方案形状的一般信息,可以在这里找到优秀的资源。

关于您的具体问题“如何仅更改核心目录的工作区以通过标签而不是获取最新版本”,您可以在自己的工作站/工作区中获取过去的版本,然后使用Cloak来排除Core从接下来的GetLatest中。这可以使您进行分析,甚至创建包含修复Program1中任何错误的更改的书架集。
但是,由于在构建期间无法使用遮蔽(请参见here有趣的帖子),我认为您最终被迫进行分支,以便构建您的修复。


我同意解决方案的布局并不理想。然而,我们也不一定希望为每个程序创建一个分支;大多数程序使用相同的核心版本。感谢提供分支文档的链接,我会阅读它们以便将来改进我们的文件夹布局。 - Ezweb

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接