【问题标题】:How to branch my Visual Studio Online (TFS) Solution?如何分支我的 Visual Studio Online (TFS) 解决方案?
【发布时间】:2016-02-02 21:27:10
【问题描述】:

我在 Visual Studio 2015 中有一个相当复杂的解决方案。它使用 Visual Studio Online 和 TFS 作为源代码控制机制进行源代码控制。

结构如下:

DefaultCollection
    Team Project Root
        |
        ----Web Apps Folder
              |
              ----Web Application 1
                    |
                    ----WebApplication1.csproj
              |
              ----Web Service 1
              |
              ----Web Service 2
        |
        ----Winforms Folder
              |
              ----Winforms App 1
              |
              ----Winforms App 2
        |
        ----Common Files Folder
        MySolution.sln

MySolution.sln 位于 Team Project Root 中,该解决方案包含其中的所有各种应用程序,它们是 Web 应用程序、Web 服务和 Windows 应用程序的混合体。

我遇到的问题是我是分支新手,我想分支整个解决方案,但我认为我的 SLN 文件在根目录中的方式会使这变得困难?

我需要对 Web 应用程序 1 进行分支,并且我知道我可以对 Web 应用程序 1 进行分支。但为了运行它,我需要创建一个新的解决方案文件来包含它,这会搞砸。

有没有办法可以从这个场景中分支整个解决方案,还是我必须尝试以某种方式重新构建事物?

【问题讨论】:

    标签: tfs visual-studio-2015 azure-devops


    【解决方案1】:

    我会在 Team Project Root 上创建一个名为 Main 的新文件夹(TFS 约定,SVN 是主干,git 是主干)。

    然后将 Team Project Root 中的所有项目移动到 Main 文件夹中。

    所以你现在的结构是:

    DefaultCollection
        Team Project Root
            |--Main
              |--Web A pps Folder
                |--stuff     
              |--Winforms Folder
                |--stuff
              |--Common Files Folder
              MySolution.sln
    

    现在您可以右键单击Main 文件夹,然后从Branching and Merging 子菜单中选择Convert to Branch

    现在你可以右击Main分支,从Branching and Merging子菜单中选择Branch...

    【讨论】:

    • 感谢 Dave,这听起来正是我最初设置解决方案时所缺少的。在一个测试项目上尝试过这个,看起来它会让我走上正轨。还花了一些时间在这里阅读 ALM Rangers 指南 - vsarbranchingguide.codeplex.com 强烈推荐的材料。
    • 值得一提的是,在移动到 TFS 的情况下,给定文件夹在文件夹级别的所有更改历史记录都将丢失。这使得该功能完全无用。
    【解决方案2】:

    你的结构应该是:

    • 团队项目集合根
      • 团队项目 A 根
        • 源文件夹
        • 源文件夹
      • 团队项目 B 根
        • 源文件夹
        • 源文件夹

    您不能在团队项目集合或团队项目根级别进行分支。您必须先将源移动到新文件夹,然后才能分支。

    【讨论】:

    • 我明白你的意思。我不认为我的问题很清楚,似乎在 VSO 中我有以下内容: DefaultCollection->My TFS Repository。根据您的说法,我的 .sln 文件位于团队项目根目录中?
    • 已更新我的问题以更好地反映层次结构 - 谢谢。
    • 实际上尝试在团队项目根目录分支并得到错误 - “目标项目......不能在源项目下......”所以这不起作用。您必须将代码移动到新文件夹然后分支。也在更新答案。
    猜你喜欢
    • 1970-01-01
    • 2011-01-03
    • 1970-01-01
    • 2017-07-30
    • 1970-01-01
    • 2015-11-28
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多