Web应用程序是一个定制的CMS,它有几个子应用程序,每个子应用程序都有代码和内容驻留在同一目录结构中。由于应用程序框架的体系结构,代码和内容交织在一起(内容取决于其显示的代码和其他功能),因此是不可分割的。内容不存储为BLOB,而是存储为文件,底层数据库用于链接它们。子应用程序的大小范围从20GB到250GB甚至更多(这是杀手)。
Web应用程序将在代码中进行一些增强(新的子应用程序,错误修复等),同时用户将通过已经实时的系统添加/更新内容。因此,需要部署/发布过程,最重要的是需要为代码和内容建议版本控制系统。
由于原因,Git出现了 - 它是开源的& amp;自由,易于分支和合并,它不是集中的&因此没有单点故障。但是经过网络上的一些初步研究后,我发现了一些令人失望的事实,这些事实适用于我们的应用程序 - 对于像我们这样的大型系统使用Git是痛苦的(结账,克隆,合并,推送,拉动)并且命令很复杂(对于一个DVCS无知且主要是Windows用户的开发者群体来说,“geeky”会更合适。
对于Git没有固定的思维方式,但如果我必须采用集中式方法(在非常糟糕的情况下)那么应该是什么样的方式(CVS和SVN除外)。我已经读过关于Perforce是一个稳定的,并且也在谷歌中使用(我希望在这里有些麻烦!!)。
请分享,指导和评论您的观点。我真的需要他们。
答案 0 :(得分:24)
我恰好在一分钟之前正在阅读this blog post。关于git的可扩展性,这有点咆哮。
编辑:八年后,Git有Large File Storage(LFS),微软正在开源Git Virtual File System(GVFS),因此他们可以使用git开发Windows。
答案 1 :(得分:16)
首先,我不同意Git不适合非技术用户。是的,新手不会使用某些功能(例如git-send-email)。但也有像TortoiseGit这样的GUI,可以简化事情。
然而,我认为你正在接近错误的方式。基本上,您拥有的内容会经常变化,并且需要由Joe Bloggs非常轻松地编辑,并且编码器会更少地修改代码。传统的解决方案是使用真正的CMS(例如Alfresco,SugarCRM,Drupal等或Wiki(MediaWiki,MoinMon等)使用可选插件。请记住,wiki(以及大多数CMSes)允许以“用户友好”的方式对内容进行版本控制。
即使你必须保留你的内部代码,我认为你仍然想要解开内容,以便可以单独处理它们。一旦您将代码和内容分开,您的存储库将是更合理的大小。然后,你可以使用你想要的任何VCS(虽然我不确定你是对的,Git本身就不适合大型回购)。
答案 2 :(得分:10)
git不适用于大型存储库。这不是空间,而是文件的数量。请阅读我之前写过的关于此的blog article。
根据我的经验,如果您想要一个可扩展,快速,集中的源代码控制系统,P4是可行的方法。
答案 3 :(得分:8)
SVN真的是一个糟糕的选择吗?
优点:
CONS:
免责声明:我从未使用Perforce,并且已经成为一名快乐的SVN管理员和用户约6年(自从第29页开始)
答案 4 :(得分:4)
有一个名为git-split的实用程序脚本可以删除git repo以提高效率。
答案 5 :(得分:2)
微软刚刚发布了 Git虚拟文件系统(GVFS)专门用于处理带有git的大型代码库。 More details here at msdn
另外Microsoft hosts the Windows source in a monstrous 300GB Git repository
我没有使用GVFS的经验。
答案 6 :(得分:-2)
我只使用git一次用于学校项目(使用Zend Framework的php站点)。
我们使用git,但老师需要在svn repo上发布最终版本。
比较结帐尺寸:
git checkout是svn checkout MB的一半大小。
我的两分钱。