如何在一个回购中使用Git“多个(数千个)项目”?

时间:2011-10-21 15:06:22

标签: git svn migration github

我们有一个包含多个项目的大型SVN回购。像 - http://plugins.svn.wordpress.org/

之类的东西

我们的回购稍微复杂一点,因为它也有多个级别的“项目”!我们打算搬到Git。

我担心的是 - 我听说Git不允许你处理部分回购(基于PATH) 因此,即使我需要处理说http://plugins.svn.wordpress.org/rtsocial/trunk,整个仓库也会被下载。这是真的?对此有什么工作吗?

我们计划使用GitHub,因此我们无法为所有项目购买1000个私人回购计划。由于项目非常小(wordpress主题,wordpress插件等),我们更喜欢将大部分项目保留在一个大型回购中

除了GitHub计划限制之外,管理1000个回购将是一项重大的管理任务(我们在SVN中有超过40个用户,而且每个月都会添加更多用户)

有没有办法继续使用Git,还是我们只能继续使用SVN? 在旁注中,如果Git更喜欢“一个项目=一个回购”,那么GitHub的任何替代方案都允许“无限私人”回购?

提前感谢大家的帮助。

2 个答案:

答案 0 :(得分:2)

在git中,您应该考虑为每个项目设置单独的repos。你所说的“克隆”整个回购以获得一个sinle项目是正确的,并没有解决方法。 (不要对稀疏结账等术语感到困惑 - Git中的术语结帐与SVN不同。)。没有克隆Git中特定文件夹的概念,就像在SVN中一样。

但是,由于您提到项目很小,您可以按逻辑分组其中一些,例如主题等。

您还可以查看BitBucket,它允许您拥有无限制的免费私人Git存储库。或者您可以在自己的服务器上托管回购,这非常简单。使用类似gitolite的内容,您可以非常轻松地管理和维护许多回购。

答案 1 :(得分:1)

  

我担心的是 - 我听说Git不允许你处理部分回购(基于PATH)所以即使我需要工作说http://plugins.svn.wordpress.org/rtsocial/trunk,整个仓库也会被下载。这是真的?对此有什么工作吗?

是。您不能只签出存储库的一部分

每个项目使用一个回购。没有其他明智的方法来组织事物。您可以通过子模块实现层次结构,这允许您将单独的仓库包含为不同仓库的“子项目”。

Git依赖于理智的内容边界来运作良好。如果您尝试将“数千个”项目转储到一个Git仓库中,那么您将面临绝对无法控制的灾难。

最后一点,Git!= GitHub。你不是必需来支付GitHub上的Git托管使用Git,我不明白为什么你会这么做,因为你显然不打算使用任何GitHub的社交编码功能1000+私有库。

任何计算机都可以托管Git存储库,供人们推送和使用。为什么不将您的“数千个”存储库安装到办公室某处的廉价基于Linux的服务器上?任何具有足够硬盘空间来容纳项目的东西都可以,一台拥有100GB硬盘的10年历史的机器可以完成这项工作。

  

在旁注中,如果Git更喜欢“一个项目=一个回购”,那么GitHub的任何替代方案都允许“无限私人”回购?

GetHub销售许可和安装其软件的本地副本的功能,称为GitHub Firewall。您将能够配置无限制的私有存储库以及管理用户等。定价starts at $5000/year