git push * to *浅层克隆,为什么不呢?

时间:2013-11-12 23:28:26

标签: git git-push git-clone git-bare

所以每个人似乎都在问为什么一个人不能从推出一个浅层克隆(而我实际上已经实现了这个)。然而,我感兴趣的是将推向浅层服务器。

这不起作用(我在我的服务器中通过“git clone --bare --depth 1 the_original_repo”服务了git repo,我无法克隆它,因为它说它是一个浅层克隆)。但我想如果一个人试图以与创建浅层克隆相同的深度进行克隆,为什么我们会有限制呢?

我的最终目标是这样的设置:

          (shallow-SERVER)
           /            \
(full-history-client)  (shallow-client)

这样,两个浅节点根本就没有历史记录,但是会有一个具有完整历史记录的客户端。如果浅客户端推送到浅服务器,则意味着它们的深度增加,但理想情况下,当完整历史客户端从服务器拉出时,它会再次减少。

我想现在这对git来说是不可行的,对吗?

1 个答案:

答案 0 :(得分:3)

没有理由你不能推送或获取部分存储库,只要你已经足够生成必要的包,我也做过。

但是你无法设置部分存储库来为其他人服务。

真正的部分回购是非常特殊的目的,对于大多数用途,您希望路径指向({至少一个)本地共享objects目录,其中包含.git/objects/info/alternates中的完整历史记录。对那些甚至根本不在回购中的人来说没有必要。我不会称之为kludge,它使偶然的gc变得不可能,但可能还有其他的思想流派。

任何无法承担一个完整包装的地方都没有任何商业服务作为任何类型的共享回购,