我有一个超过15GB的非常大的Web项目。我试图找出在subversion中添加项目的最佳方法。
大多数情况下,添加功能时,更改仅在一个文件夹上进行,即根级别的每个目录都可以视为独立应用程序。 根级别的大多数目录只有一个或两个依赖文件夹,如共享文件夹(包含常见的包含脚本)。
将根目录下的每个目录作为子项目是否有意义?如果是,是否有其他工具,如外部可能有助于管理依赖。
或者将整个网站添加为单个项目并使用部分检出来检查您需要更新的目录和相关目录是否更好?部分结账会在分支/合并期间造成问题吗?
答案 0 :(得分:0)
两种解决方案都可以正常工作。我建议第一个,以防有人忘记检查一个子目录并获得整个回购。此外,如果某些地方出现问题,您希望限制损坏而不是占用整个代码库。当每个文件夹都是一个单独的仓库时,只需确保用户在同一级别检查公共仓库。
同样对于这个大型项目,您可能需要考虑更商业化的存储库软件(perforce,mercurial等)
答案 1 :(得分:0)
网站上有什么导致它如此之大?它是否包含编译代码(如Java)或是图像等。
如果是已编译的代码,则不需要Subversion中的网站,只需要源文件,这样可以减小大小。
然而,如果网站真的那么大(可能是很多图像和媒体文件),我建议你为了方便起见将它分解成多个Subversion存储库。如果使用httpd作为Subversion服务器,则可以在单个Apache实例和单个Apache配置点下拥有多个存储库。这允许您将单独的存储库视为一个非常大的存储库,例如权限,签出等。但是,它使您可以方便地将各个单独的存储库移动到多个磁盘上,并加快访问速度很多。
我无法获得更多商业软件。 Subversion非常强大。