目前我们使用SVN进行源代码控制。由于开发环境中的额外功能和集成,我们希望迁移到TFS 2012.
我们有很多在asp.net中运行的门户网站。在我们的门户网站中,我们使用了许多标准组件。目前,所有门户网站都使用相同的代码库。这意味着每当我们在共享代码库中更改某些内容时(无论何时发布门户)都会自动分发。我们非常习惯这种工作方式,我们知道在其他门户网站中存在破坏代码的风险。但是,在所有其他门户网站上发布更改会花费很多时间。所以为了做到这一点,我们在SVN中使用外部。
我真的希望保持此功能的正常运行。所以我的问题是,有没有办法在SVN中创建一个类似于外部的系统,或者有一种非常好的方式可以有效地替换这个功能。
答案 0 :(得分:6)
Visual Studio Team Foundation Server Branching and Merging Guide中有一些建议。
如果您下载“Everything”包并查看“All Guides”压缩文件并阅读“高级版本控制指南”。
第5-19页(版本2.1)涵盖管理共享资源,那里有很多内容并且总结一下,Stack Overflow可能会让Ranger不公平,所以我只会指出你。
答案 1 :(得分:-1)
底线:没有TFS没有“svn:externals”的等价物。
代码共享很糟糕,导致代码重复,而不是代码重用。取而代之的是编译代码。
您应该仅依赖于共享库的“输出”而不依赖于源文件。至于方案,我认为不建议在产品/解决方案之间共享源文件。
原因是事情变得复杂,很快就会变得笨拙。如果您将一个依赖项移动到一个共享库,而所有共享库都更改为相同的代码并且它们交替地相互分离,那该怎么办?唯一的方法就是开始将您的公共代码分支到其他项目中,这些项目现在增加了一定程度的复杂性和集成,从长远来看永远不会得到处理,您将最终获得相同代码库的三个或更多版本时间。
你应该做的是有一个核心组件,它被改变并构建以产生输出。然后可以根据需要将此输出提取到依赖于这些更改的其他项目中。这导致更少的破损,更好的架构和更少的技术债务。
您甚至可以使用托管的内部服务器将NuGet引入等式,以发布您的公共组件,并在新版本可用时通知每个消费者。