2012-02-07 51 views
3

我在2010 TFS具有以下工作区有一个自动生成的工作空间的一部分:TFS 2010生成越能根据标签

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

然后我建立这两个核心项目和程序1具体项目为构建的一部分。但是,在为以前版本进行错误修复时,我需要获取核心文件的特定标签,但是程序1文件的最新版本。我怎样才能改变工作空间只有核心目录才能通过标签获取而不是获取最新的。

我知道我可以从Core文件夹的标签创建一个分支,但由于错误修复仅在Program 1文件中,因此我不想创建一个没有任何更改的新分支。

回答

1

所以你有一个从不同的TeamProjects导入代码的解决方案。
这不是一个很合适的设置,一个更灵活的选择可能是以下几点:

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

如果你有设置您的SCM结构这样的,你只需要定义在构建定义如下:
$/Program1 $(SourceDir)

因此,如果您在过去的版本Program1上遇到问题,可以继续使用Hotfix分支,而不要面对当前的挑战。关于一般TFS分支的优秀资源&源控制中的溶液整形可以在here找到。

您的具体问题:“我怎样才能改变工作区唯一核心目录由标签,而不是获取最新得到的。”:
在您自己的工作站/工作区,你可以得到过去版本&然后使用Cloak从以下GetLatest排除Core。这可以使您能够进行分析,甚至创建包含修改任何错误的Program1中的更改的搁置集。
但是,由于在构建过程中隐藏功能不可用(请参阅here中的一篇有趣的文章),我相信您最终会被迫继续使用分支,以便获得修补程序。

+0

我同意解决方案布局不理想。但是,我们也不一定希望每个程序都有一个分支。大多数程序使用相同的核心版本。感谢分支文档的链接,我会仔细阅读它们以便将来改进我们的文件夹布局。 – Ezweb 2012-02-09 21:42:44