TFS分支推荐

And*_*ark 7 tfs tfs2010 branching-and-merging

我有一个名为"Framework"的解决方案,它是我的业务逻辑和数据事务的C#程序集.

我有4个应用程序使用Framework,1个网站,1个Console应用程序和3个其他类型的应用程序.

$/TeamProject
    /Framework
        /Dev
        /Main
        /Release
    /WebApp
        /Dev
        /Main
        /Release
    /WCFApp
        /Dev
        /Main
        /Release
Run Code Online (Sandbox Code Playgroud)

我在一个团队项目中拥有所有这些,每个程序集/应用程序都在自己的文件夹下.

我想为共享框架程序集的每个应用程序使用分支功能,但我不知道将应用程序与Framework一起分支的最佳方法是什么?

有什么建议?

我知道分支和合并是如何工作的,但是所有的例子都只展示了包含在1个文件夹中的所有内容.

Dav*_*haw 7

根据代表源控制目录的图片,我将做出以下假设:

$/TeamProject
   /Framework
   /Console
   /Web
   /etc.

首先需要做的是创建一个名为Mainin 的文件夹$/TeamProject(这将是你的Main - aka trunk - branch)并将所有顶级文件夹移入其中.

那么我们有:

$/TeamProject
   /Main
     /Framework
     /Console
     /Web
     /etc.

现在您需要转换Main为分支,您可以通过右键单击该Main文件夹并选择"转换为分支"来完成此操作.TFS现在允许您分支$/TeamProject/Main$/TeamProject/ConsoleV2(例如)并处理控制台V2的功能.如果在此分支中需要,您可以修改控制台应用程序和框架.完成此工作后,您可以将更改反向集成(合并)到Main.

请记住继续执行正向集成合并(合并)Main到您的功能分支并解决任何冲突以保持代码库同步.

通过采用这种方法,您可以在单个原子签入中修改任何产品的任何部分,例如,您更改框架上的API,为方法添加新的必需参数,您可以在所有应用程序中更改它同时,当你RI合并到Main一切都会更新.

  • Daves建议几乎是标准方法.如果您正在对Web应用程序的框架进行更改,并且这会破坏您的wcf应用程序中的代码,因为API正在发生变化,您可以将框架保留在原来的位置并检查稳定的二进制文件以进行源代码控制.实际上,您将框架视为第三方库,如"企业库",其中您的Web应用程序引用版本2.0,而您的wcf应用程序引用1.2.这一切都取决于在发生破坏性变更时发生的权衡,或者具有稳定的依赖性.这两种方法都有利有弊 (2认同)