git-http-backend 和简单的 dav 存储库托管设置之间有什么区别?

git-http-backend 和简单的 dav 存储库托管设置之间有什么区别?

在一些搜索中,我发现了两种略有不同的通过 http 提供 git 存储库的方法。

第一仅使用 DAV。第二个使用 DAVgit-http-后端。

上述几种方法有什么区别吗?

答案1

是的,第一种方法效率很低,这就是为什么第二种方法被创造出来的原因。当使用旧的“愚蠢”传输方法时,git 无法从服务器请求特定的对象,它只能找出哪个包文件包含它需要的对象并下载全部的打包文件。

较旧的“哑”传输也从未真正用于将更改推送到服务器。虽然可以实现,但没人使用它,而且每个人都知道它很糟糕,因此它从未引起开发人员的太多关注。

另外如果你重新审视git-http-backend 手册页您链接的,您会注意到它不使用 DAV。这些示例创建了一个向后兼容的设置,以便较旧的 git 客户端仍具有读取权限,但只有较新的客户端才具有写入权限。我不知道是否可以设置它以便将 git-http-backend 和 DAV 一起使用,以便新旧客户端都可以具有写入权限,但我甚至不建议尝试它。

现实情况是,旧的“愚蠢”方法应该逐渐消失,并尽可能用“智能”方法取而代之。

为了更好地解释“愚蠢”和“智能”传输方法之间的区别,请阅读 ProGit 书籍作者撰写的这个精彩页面(带有图片!)。

http://progit.org/2010/03/04/smart-http.html

相关内容