4

我的公司有两三个使用大量通用代码的 Web 应用程序——自定义 MVC 框架、实用程序类、JavaScript 库等等。

我们不希望在每个应用程序中复制所有这些代码,因为我们最终会使用几个略有不同的版本。但是我们不希望应用程序需要此代码的完全相同的副本,因为我们不希望对一个应用程序的更新可能会破坏另一个应用程序。

有没有人有任何关于处理这个问题的提示?我认为我不是在寻找技术答案——更多的是一种通用方法。

我们可以将代码制作成库,并允许应用程序保留在旧版本的库中,直到它们准备好升级。或者我们可以把它做成多个库,这样我们就不必一次升级所有东西。但是管理库版本之间的相互依赖会变得困难吗?

4

4 回答 4

5

我将 SVN 与 svn:externals 一起使用。你想要稳定的东西应该在标签文件夹中,这样依赖的项目就不会受到主干中其他开发的影响。

于 2009-04-16T18:15:11.913 回答
0

我将为代表最新和最佳版本的通用代码创建一个源代码控制分支。

然后,对于每个项目,都有你自己独立的代码分支,你可以在需要的地方进行快速修复,或者在接近发布时保持稳定性。

您可能希望有一个 Wiki,其中列出了在公共代码中发现的错误,以便共享代码的其他用户知道它并有时间在闲暇时修复它。

Git 可以很好地解决这个问题,因为它擅长将更改合并回“主”分支。

于 2009-04-16T18:57:15.383 回答
0

我用 svn:externals 支持 SVN。我们有一个共享一些代码的客户端和服务器。代码在服务器下维护(但可以移出到自己的仓库),客户端使用 svn:externals 将其拉入。客户端主干从服务器主干中拉出。但是,当我们分支(比如发布)时,我们会将外部拉入的内容固定在特定的转速、分支或标签上。如果你不这样做并且你回到旧分支并更新,你可能会得到共享代码的主干,这很可能不是你想要的。

于 2009-04-16T18:40:08.280 回答
0

这取决于很多很多因素——不同的语言在库方面有不同的行为。我通常处理这个问题的方法是让每个应用程序对其外部依赖项进行一系列测试,包括我编写的库,并使用它来防止对所述库的升级破坏应用程序。

有关您正在使用的平台的更多详细信息吗?可能有特定的工具可以帮助满足您的特定需求。

于 2009-04-16T18:16:07.900 回答