Git建议用于大型(> 250GB)内容存储库

kay*_*aks 27 git version-control perforce

Web应用程序是一个定制的CMS,它有几个子应用程序,每个子应用程序都有代码和内容驻留在同一目录结构中.由于应用程序框架的体系结构,代码和内容交织在一起(内容取决于其显示的代码和其他功能),因此是不可分割的.内容不存储为BLOB,而是存储为文件,底层数据库用于链接它们.子应用程序的大小范围从20GB到250GB甚至更多(这是杀手).

Web应用程序将在代码中进行一些增强(新的子应用程序,错误修复等),同时用户将通过已经存在的系统添加/更新内容.因此,需要部署/发布过程,最重要的是需要为代码和内容建议版本控制系统.

由于原因,Git出现了 - 它是开源和免费的,易于分支和合并,它不是集中的,因此没有单点故障.

但是在网上进行了一些初步研究之后,我发现了一些适用于我们应用程序的令人失望的事实 - 对我们这样的大型系统使用Git是痛苦的(结账,克隆,合并,推送,拉动),命令很复杂("怪异")对于DVCS无知且大多数是Windows用户的开发人员基础更合适.

对于Git没有固定的思维方式,但如果我必须采用集中式方法(在非常糟糕的情况下)那么应该是什么样的方式(CVS与SVN分开).我已经读过关于Perforce是一个稳定的,并且也在谷歌中使用过(我希望在这里有些麻烦!!).

请分享,指导和评论您的观点.我真的需要他们.

pgs*_*pgs 25

我刚刚在一分钟前正在阅读这篇博文.关于git的可扩展性,这有点咆哮.

编辑:八年后,Git拥有大文件存储(LFS),微软开源Git虚拟文件系统(GVFS),因此他们可以使用git开发Windows.

  • 链接答案不好; 链接变得死了,或像这样已经发生过移动.我们应该在这个答案中包含至少一个小的描述. (6认同)
  • 链接似乎已经移到这里:http://stevehanov.ca/blog/index.php?id = 50 (4认同)
  • 引用的文章非常过时,不太相关. (4认同)

Mat*_*hen 16

首先,我不同意Git不适合非技术用户.是的,新手不会使用某些功能(例如git-send-email).但是也有像TortoiseGit这样的GUI 可以简化事情.

但是,我认为你正在接近错误的方式.基本上,您拥有的内容会经常变化,并且需要由Joe Bloggs非常轻松地编辑,并且编码器会更少地修改代码.传统的解决方案是使用真正的CMS(例如Alfresco,SugarCRM,Drupal等或Wiki(MediaWiki,MoinMon等))和可选插件.请记住,wiki(和大多数CMSes)允许版本化内容,以"用户友好"的方式.

即使你必须保留你的内部代码,我认为你仍然想要解开内容,以便可以单独处理它们.一旦您将代码和内容分开,您的存储库将是更合理的大小.然后,你可以使用你想要的任何VCS(虽然我不确定你是对的,Git本身就不适合大型回购).

  • 马修,你自己使用过TortoiseGit吗?我没有,但我得到的印象是它仍然非常beta(如果不是alpha).我尝试在Windows上使用MSYS Git,发现它很笨拙和特殊.没有像TortoiseGit这样的可用GUI界面,真的不适合非技术人员或胆小者. (4认同)
  • 当我们评估替代源控制系统时,我在我的工作场所非常简短地试验了TortoiseGit.我的非技术测试用户对此感到非常困惑和困惑,并且在几个小时内就充满敌意. (3认同)

Jar*_*aus 10

git不适用于大型存储库.这不是空间,而是文件的数量.请阅读我之前写过的关于此内容的博客文章.

根据我的经验,如果您想要一个可扩展,快速,集中的源控制系统,P4就是您的选择.


si6*_*618 8

SVN真的是一个糟糕的选择吗?

优点:

  • 可以处理大型存储库,例如许多Linux发行版使用它,还有Apache,Sourceforge
  • 拥有漂亮的GUI前端和TortoiseSVN,让您的Windows用户满意
  • 可以与Windows集成身份验证一起使用,以保持管理员满意
  • 可以根据您的要求(svnadmin hotcopy或dump,svnsync,post-commit hooks)采用许多不同的备份策略,以帮助缓解您的单点故障问题.

缺点:

  • 集中式VCS

免责声明:我从未使用Perforce,并且已经成为一个快乐的SVN管理员和用户约6年(从v0.29开始)