2

所以每个人似乎都在问为什么一个人不能浅层克隆中推动(虽然我实际上已经实现了这一点)。但是,我感兴趣的是推送到浅服务器。

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

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

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

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

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

4

1 回答 1

3

只要您有足够的资源来生成必要的包,就没有理由不能从部分存储库中推送或获取,我也已经完成了。

但是您不能设置部分存储库来为其他人服务。

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

任何连一整包都买不起的地方都不能作为任何类型的共享回购,

于 2013-11-13T00:32:44.827 回答