我决定将我的TFS解决方案分支到4个分支机构。我最初有一个源代码控制的VS解决方案,称为“开发”。随着产品的增长,我决定为三个使用它的客户创建3个分支。所以我有:
我对'Development-Client2'有了一个新的更改请求,并编写了代码并进行了更改。当我检查源文件时,我注意到“开发”也考虑了这些新的变化。
我期望发生的事情,当我分支'开发'时,我会有4个版本的解决方案,我可以合并它们之间的变更集。
从我目前的设置来看,我在#2,#3或#4中所做的任何更改都会自动添加到#1中。
由于分支最近发生,我觉得我现在可以解决它。有谁知道我需要什么来获得4个独立分支?
在我的解决方案文件中,我有6个项目:
我注意到,对于我在'Development-Client2'中的新功能,项目2-6中的更改尚未添加到'Development'分支或'Development-Client1'或'Development-Client3'分支中。
但是,我对“Development-Client2”中对“ASP.NET网站(针对localhost运行)”所做的任何更改都已复制到所有分支中。
我认为按照以下顺序发生的是:
我还注意到在TFS的Source Explorer部分中,每个分支的解决方案文件都指向项目的“Development-NewFeatureX”[ASP.NET网站(针对localhost运行)]
我试图查看解决方案文件并修改以下路径:
..发 - NewFeatureX / ASPNETSITE
为:
..发 - ClientX / ASPNETSITE
然而,这只是不起作用,源代码控制似乎覆盖了解决方案文件。
我认为我承认失败并试图开始一个新的解决方案。
如果任何TFS专家知道我在说什么,请给我一些建议
答案 0 :(得分:1)
要尝试的一些事情。
自2010年以来:您是否尝试在分支可视化工具中跟踪其中一个变更集?在您的一个孙子分支中选择一个特定的变更集,您认为它会将自己复制回其他分支并查看TFS认为它去了哪里?如果它在其他分支中亮起,具有新的变更集编号,那么这表示已发生合并。然后,您可以找到合并变更集,看看它是如何形成的。
如果没有合并,那么您认为其他分支中的特定文件的历史记录是什么,您认为这些文件是从其他地方复制过来的,并检查它们的差异以查看其更改的来源?
您检查了IIS /虚拟目录设置吗?每个分支是否指向正确的虚拟目录?
您设置了多少本地工作空间以及如何配置? TFS中的多个工作区可能会导致混淆,因为您在源代码管理资源管理器中查看的工作区可能与您在“待更改”窗口中看到的不同,这可能会导致签入到您想要的位置之外的某个位置。
最后,我很好奇 - 你想让分支与祖父母和彼此脱离的原因是什么?我不清楚删除那个父母分支并将其全部删除的好处/动机; TFS不喜欢保留这些父/子关系吗?还是很难记住?
答案 1 :(得分:1)
根据我的经验,VS总是要求使用localhost的网站。
以下是对我有用的东西:
我认为你的情况发生了什么:你使用过File - >新网站项目,它将项目放入解决方案文件,然后您将该网站连接到客户端解决方案,因为它位于同一位置。从那以后,TFS正在为所有客户从同一个地方挑选他的文件。这是皮塔饼。
答案 2 :(得分:1)
以下是我将如何根据您的情况制定我的分支和发展战略:
在IIS中的本地计算机上,为每个客户设置一个具有不同端口的网站,并在端口80上设置Main分支。这样您就可以访问所有版本的parralel而无需切换。
此策略允许您在Main中执行常规错误修复或常用功能,并在需要时对客户分支执行FI操作。如果需要,你可以从顾客那里进入主要的RI,但如果你坚持分支的目的,你真的不需要。
这也允许您保留一个稳定的代码版本,以满足未来的需求或每个客户的错误修复。
我知道这不能解决您的问题,但我希望它有助于您项目的未来布局。