0

我有一个超过 15GB 的非常大的 Web 项目。我试图找出在颠覆中添加项目的最佳方法。

大多数情况下,当添加一项功能时,更改只发生在一个文件夹上,即根级别的每个目录都可以视为独立应用程序。大多数根级别的目录只有一个或两个依赖文件夹,如共享文件夹(包含常见的包含脚本)。

使根级别的每个目录成为子项目是否有意义?如果是,是否有其他工具(例如外部工具)可能对管理依赖关系有用。

或者将整个网站添加为单个项目并使用部分签出来签出您需要更新的目录和依赖目录是否更好。分支/合并期间部分结帐会造成问题吗?

4

2 回答 2

0

是什么导致它如此之大?它是否包括已编译的代码(如 Java)或者是图像等。

如果它是编译代码,你不需要 Subversion 中的网站,只需要源文件,这将缩小大小。

但是,如果网站真的那么大(可能有很多图像和媒体文件),我建议您为了方便起见将它分成多个 Subversion 存储库。如果您使用 httpd 作为 Subversion 服务器,您可以在单个 Apache 实例和单个 Apache 配置点下拥有多个存储库。这使您可以将单独的存储库视为一个非常大的存储库,用于诸如权限、签出等之类的事情。然而,它使您可以方便地将各种单独的存储库移动到多个磁盘上,并加快访问速度相当多。

我不会努力获得更多的商业软件。Subversion 相当强大。

于 2012-05-29T22:43:46.743 回答
0

任何一种解决方案都可以正常工作。我建议第一个,以防有人忘记签出子目录并获取整个 repo。此外,如果某处发生损坏,您希望限制损坏而不是阻止整个代码库。当每个文件夹都是一个单独的 repo 时,只需确保用户在同一级别签出 common repo 即可。

同样对于这个大型项目,您可能需要考虑更商业化的存储库软件(perforce、mercurial 等)

于 2012-05-29T18:51:38.047 回答