在一些search中,我发现了两个稍微不同的方法来说明如何通过http来服务git仓库。
第一个只使用DAV。 第二个使用DAV 和 git-http-backend。
上述方法有没有区别?
是的,第一种方法非常低效,这就是为什么第二种方法被创build的原因。 当使用旧的“哑”传输方法时,git不能从服务器请求特定的对象,它只能找出哪个packfile包含它需要的对象,并下载整个 packfile。
较老的“哑巴”运输也从来没有真正意图推动到服务器的变化。 这是可能的,但没有人使用它,每个人都知道这是不好的,所以它没有得到太多的开发人员的关注
另外,如果您重新检查链接的git-http-backend手册页 ,则会注意到它不使用DAV。 这些示例创build了一个向后兼容的设置,以便旧的git客户端仍然可以读取访问权限,但只有较新的客户端才具有写入权限。 我不知道是否可以设置它,以便git-http-backend和DAV一起使用,以便新老客户端可以写访问,但我甚至不build议尝试它。
事实上,旧的“愚蠢的”方法的使用需要消亡,并尽可能用“聪明”的方法来取代。
为了更好地解释“哑”和“智能”运输方法之间的差异,请阅读ProGit书籍作者的优秀页面(附图片!)。