【发布时间】:2010-11-03 05:45:02
【问题描述】:
网络应用程序是一个定制的 CMS,它有多个子应用程序,每个子应用程序的代码和内容都位于相同的目录结构中。由于应用程序框架的架构,代码和内容是交织在一起的(内容取决于代码的显示和其他功能),因此是不可分割的。内容不存储为 BLOB,而是存储为文件,底层数据库用于链接它们。子应用程序的大小范围为 20GB - 250GB 甚至更多(这是杀手锏)。
网络应用程序将在代码中进行一些增强(新的子应用程序、错误修复等),同时用户将通过现有系统添加/更新内容。因此,需要部署/发布过程,最重要的是需要为代码和内容建议版本控制系统。
Git 之所以出现是有原因的——它是开源和免费的,易于分支和合并,它不是集中式的,因此没有单点故障。
但是在网络上进行了一些初步研究之后,我发现了一些适用于我们的应用程序的令人失望的事实 - 将 Git 用于像我们这样的大型系统是痛苦的(结帐、克隆、合并、推送、拉取)并且命令很复杂( “极客”更适合)对于 DVCS 无知且主要是 Windows 用户的开发人员群。
Git 没有固定的思维模式,但如果我必须采用集中式方法(在最糟糕的情况下),那么应该采取什么方式(CVS 和 SVN 除外)。我已经读过 Perforce 是一个稳定的版本,并且在 Google 中也有使用(我希望这里有一些粗鲁!!)。
请分享、指导和评论您的观点。我真的需要他们。
【问题讨论】:
-
Git 不是为这么大的存储库设计的(尽管正在努力使它对大文件和大型存储库表现得更好)......但我认为你会遇到任何版本控制的性能问题不按文件方式进行操作的系统(这有其自身的严重缺点),或者不支持部分签出。你真的需要对那些大文件和代码进行版本控制吗?
-
我刚刚读到一个名为 monotone 的 DVCS。可能是您的替代方案。
-
我目前正在处理一个巨大的存储库。我正在研究子模块,看看这是否能改善一切。
标签: git version-control perforce