13

目前我们使用 SVN 进行源代码控制。由于开发环境中的额外功能和集成,我们希望迁移到 TFS 2012。

我们有很多运行在 asp.net 中的门户。在我们的门户中,我们使用了很多标准组件。目前所有门户网站都使用相同的代码库。这意味着每当我们更改共享代码库中的某些内容时(无论何时发布门户),它都会自动分发。我们非常习惯这种工作方式,并且我们知道在其他门户中存在破坏代码的风险。但是,在所有其他门户中发布更改将花费大量时间。所以要做到这一点,我们在 SVN 中使用外部。

我真的很想保持这个功能正常运行。所以我的问题是,有没有一种方法可以在 SVN 中创建一个类似外部的系统,或者是否有一种非常好的方法可以有效地替换这个功能。

4

2 回答 2

6

Visual Studio Team Foundation Server Branching and Merging Guide中有一些建议。

如果您下载“Everything”包并查看“所有指南”压缩包并阅读“高级版本控制指南”。

第 5-19 页(2.1 版)介绍了管理共享资源,那里有很多内容,总结一下 Stack Overflow 可能会对 Ranger 造成不公平,所以我只是指出您那里。

于 2012-11-15T23:14:00.383 回答
-1

底线:没有 TFS 没有等效于“svn:externals”。

代码共享很糟糕,会导致代码重复而不是代码重用。而是依赖于编译的代码。

您应该只依赖于共享库的“输出”而不是源文件。至于场景,我想不出建议在产品/解决方案之间共享源文件的场景。

原因是事情会很快变得复杂而笨拙。如果您将多个依赖项移动到一个共享库,这些库都更改为相同的代码并且它们交替地相互破坏,该怎么办。解决这个问题的唯一方法是开始将您的通用代码分支到其他项目中,这现在增加了一定程度的复杂性和集成,从长远来看永远无法处理,您最终将获得相同代码库的三个或更多版本时间。

你应该做的是有一个单一的核心组件被改变和构建以产生输出。然后可以根据需要将该输出拉入依赖于这些更改或不依赖于这些更改的其他项目中。这会导致更少的损坏、更好的架构和更少的技术债务。

您甚至可以使用托管在内部服务器上的 NuGet 来发布您的通用组件,并在新版本可用时通知每个消费者。

于 2012-12-05T22:07:04.990 回答