Asp.net 删除分支层次结构中的主干,并仅具有相同级别的分支

Asp.net 删除分支层次结构中的主干,并仅具有相同级别的分支,asp.net,tfs,branch,projects-and-solutions,branching-and-merging,Asp.net,Tfs,Branch,Projects And Solutions,Branching And Merging,我已决定将TFS解决方案分为4个分支。我最初有一个VS解决方案是在源代码控制下的,叫做“开发”。随着产品的发展,我决定为使用它的三个客户创建三个分支。因此,我: 发展 开发-客户1 开发-客户2 开发-客户3 我对“Development-Client2”提出了新的更改请求,并编写了代码并进行了更改。当我在中检查源文件时,我注意到“开发”也考虑了这些新的更改 当我将“开发”分支时,我所期望的是我将有4个版本的解决方案,并且我可以在它们之间合并变更集 从我当前的设置来看,我在#2、#3或#4中所做

我已决定将TFS解决方案分为4个分支。我最初有一个VS解决方案是在源代码控制下的,叫做“开发”。随着产品的发展,我决定为使用它的三个客户创建三个分支。因此,我:

  • 发展
  • 开发-客户1
  • 开发-客户2
  • 开发-客户3
  • 我对“Development-Client2”提出了新的更改请求,并编写了代码并进行了更改。当我在中检查源文件时,我注意到“开发”也考虑了这些新的更改

    当我将“开发”分支时,我所期望的是我将有4个版本的解决方案,并且我可以在它们之间合并变更集

    从我当前的设置来看,我在#2、#3或#4中所做的任何更改都将自动添加到#1中

    由于最近发生了分支,我觉得我现在可以解决它了。有人知道我需要什么才能得到4个独立的分支吗

    更新 在我的解决方案文件中,我有6个项目:

  • ASP.NET网站(在本地主机上运行)
  • 控制台应用程序
  • 类库(业务逻辑)
  • 类库(数据访问)
  • 类库(实体)
  • 类库(常用方法)
  • 我注意到,对于“Development-Client2”中的新功能,项目2-6中的更改没有添加到“Development”分支或“Development-Client1”或“Development-Client3”分支中

    但是,我对“Development-Client2”中的“ASP.NET网站(针对本地主机运行)”所做的任何更改都已复制到所有分支中。

    更新2 我认为按照以下顺序发生的是:

  • 我有一个名为源代码管理下的开发(TFS)的解决方案
  • 我创建了一个名为Development NewFeatureX的分支
  • 我将Development NewFeatureX分支了3次,剩下的是Development、Development NewFeatureX、Development-Client1、Development-Client2、Development-Client3
  • 我删除了开发NewFeatureX分支
  • 我对Development-Client2分支下的项目1、3、4和5进行了大量更改
  • 此时,我意识到project 1的更改已经在其他分支中复制了。
  • 我还注意到,在TFS的源浏览器部分,每个分支的解决方案文件都指向项目[ASP.NET网站(针对本地主机运行)]的“Development NewFeatureX”。

    我已尝试签出解决方案文件并从以下位置修改路径:

    …开发新功能X/ASPNETSITE

    致:

    …开发ClientX/ASPNETSITE

    但是,这根本不起作用,源代码管理似乎正在覆盖解决方案文件

    我认为,正是在这一点上,我承认失败,并试图开始一个新的解决方案

    如果任何TFS大师知道我在说什么,请给我一些建议

    问题摘要
    • 我有4个分支
    • 每当我打开项目中任何分支的解决方案文件:“ASP.NET Web站点(针对本地主机运行)”时,它都是一样的。i、 是同一个。因此,如果我在任何一个分支中对这个项目进行更改,它将覆盖所有分支
    • 这个有问题的项目的映射文件夹是我以前删除的分支
    • TFS的结构似乎与分支机构/项目一致。只有当我打开解决方案文件时,ASP.NET站点才始终是相同的
    • 请看截图

    有几件事需要尝试

    自2010年以来:您是否尝试过在分支可视化工具中跟踪一个变更集?选择在您的一个孙子分支中创建的特定变更集,您认为该变更集将自身复制回其他分支,然后查看TFS认为它去了哪里?如果它在其他分支中亮起,带有新的变更集编号,则表示已发生合并。然后您可以找到合并变更集并查看它是如何产生的

    如果没有合并,那么其他分支中的特定文件的历史记录又如何呢?您认为这些文件是从其他地方复制进来的,并检查它们的差异以查看它们的更改来自何处

    您是否检查了IIS/虚拟目录设置?每个分支是否指向正确的虚拟目录

    您设置了多少本地工作区,它们是如何配置的?TFS中的多个工作区可能会导致混淆,因为您在源代码管理资源管理器中查看的工作区可能与您在“挂起的更改”窗口中看到的工作区不同,这可能会导致签入到您想要的位置以外的其他位置


    最后,我很好奇——你为什么希望树枝与它们的祖父母和彼此分离?我不清楚删除该母公司分支机构并将其全部切断的好处/动机;TFS不希望保留这些父/子关系吗?或者它足够聪明来记住吗?

    根据我的经验,VS总是需要从localhost手持网站

    以下是对我一直有效的方法:

    • 仅按以下方式创建web项目:文件->新建项目->web
    • 始终指定项目的位置,即w:\project\code\AppWebLocation
    • 然后您可以在项目属性->Web->服务器中
      • 使用localhost/virtualDir-它将为您完成映射
      • 使用VS Development Server-我讨厌它:-\
      • 我认为使用iisexpress-localhost是更好的选择
    我认为在您的案例中发生了什么:您使用了文件->新建网站项目,它将项目放入解决方案文件中,然后您将该网站连接到客户端解决方案中,就像它在同一位置一样。从那时起,TFS从同一个地方为所有人挑选他的文件