简而言之,有没有办法让我有效地(在空间方面)从只支持智能协议但不支持过滤器规范的 git 服务器指定我想要的确切对象?
更多背景信息:由于 GitHub 在 pack 协议中缺乏过滤规范支持,我一直在尝试构建一种方法来获取多 GB 存储库,其中单个提交也包含多个 GB。我的想法是使用获取包请求(或在服务器上上传包),want
仅指定一个提交对象,然后从那里获取该对象,获取它引用的树,在另一个请求中获取树对象,然后手动指定哪个我想要从那里得到的 blob 和树对象。但我发现,pack 协议似乎是从为您“想要”的特定提交或树提供尽可能多的数据的角度运行的。
这对我正在做的事情意味着每当我指定一个树哈希的提交时,我不仅得到提交或树对象,而且还得到它们包含的每个对象。在使用加深设置来限制我想要的提交次数时也会发生这种情况;0 不产生任何结果,而 1 产生上述结果。我已经验证了want
仅指定 blob 的 a 确实会生成仅包含该 blob 的包文件,因此该部分确实可以按预期工作。