从另一个TFS项目链接TFS源控制文件夹

Pet*_*nes 2 delphi version-control tfs2010

我们正在转向TFS 2010(来自PVCS)进行源控制和工作项跟踪

据我所知,你应该在每个TFS项目的源代码控制下,需要构建项目解决方案等所需的一切.

这为确定新的.NET解决方案/项目,但我们有大量遗留的德尔福6个与共享项目库,我们要口进入TFS源控制和构建.我们如何管理多个想要在它们之间查找特定源文件集的TFS项目,这是我的问题.

从历史上看,PVCS我们已经有了每个解决方案的项目(比如说A和B),以及一个共同的源代码项目(比如说C).用户会得到C然后在磁盘上获得A或B(根据需要检出),这将像这样:

$\Projects\C
$\Projects\B
Run Code Online (Sandbox Code Playgroud)

但B&C是单独的PVCS档案.

现在通过TFS 2010作为我们的ALM解决方案快速生活......

如果我们创建一个包含公共代码(C)的源存储库的TFS项目(1),那么项目显然可以访问它(假设TFS项目也包含解决方案A),一切都很好.

我们现在创建一个新的TFS项目(2),在其中制作解决方案B. Beacuse解决方案B与解决方案A不同,我们没有理由共享TFS项目1的源代码控制,因此我们创建了一个新的源代码库,而不是从1分支.现在稍后我们发现解决方案B需要从C(1)中访问一些常见文件.哎呀!

问题是这个; 我可以执行一些源代码控制wizzardry,让我在2的soruce控件中添加一个文件夹,这是一个(窃取文件系统术语)符号链接到公共代码C的1的源代码控制中吗?

编辑
我应该指出这是所有遗留代码,共享源代码库(C)只是它不构建到库或其他二进制文件的共享源,我们可以简单地添加到A或B.

Ass*_*one 5

在TFS 2010中,您可能知道,他们引入了项目集合(PC)的概念.每个项目集合都是团队项目(TP)的聚合.每台PC都存储在一个单独的数据库中,VCS存储在数据库中.

这意味着每台PC有一个VCS存储库,而不是TP.每个TP(默认情况下)是每个VCS中的根文件夹(即TP1将位于$/Prj1,TP2可能位于4/Prj2等)

还有一点是,您不希望每个TP都有一个解决方案.将TP视为一套产品,并将其作为解决方案的一部分.

符号链接,根据Visual Source Safe,在TFS中不再存在,我不确定您是否需要它们.在一个解决方案和另一个解决方案的源代码之间创建依赖关系并不是一种好的做法.

我建议你做的是,你的代码库中的每个解决方案都只依赖于它自己的代码,以及其他解决方案的二进制交付.

如果Sln_A依赖于Common_Sln,您将构建Common_Sln,并将其二进制文件作为Get的一部分从drop位置引入.然后,添加二进制文件作为引用.

这将解决您的问题,还有一个额外的好处,即转换紧密耦合,其中依赖关系可能会破坏您的依赖解决方案的构建,进入您不会更改或升级依赖关系直到它们准备好并且您已准备好它们的情况.

这有助于解决您的问题吗?这就是我如何处理我咨询的项目.

HTH,Assaf.