使用 Git 2.13(2017 年第二季度),您将能够设置http.postBuffer
一个非常大的数字(即,比ulong
某些平台上的更大)。
请参阅David Turner ( )的提交 37ee680(2017 年 4 月 11 日) 。(由Junio C Hamano 合并 -- --在提交 4c01f67中,2017 年 4 月 24 日)csusbdt
gitster
http.postbuffer
: 允许全范围的ssize_t
值
不幸的是,为了推送一些服务器不支持分块编码的大型存储库,http postbuffer
有时必须超过 2 GB。
在 64 位系统上,这没问题:我们只是 malloc 一个更大的缓冲区。
这意味着我们需要使用 CURLOPT_POSTFIELDSIZE_LARGE 来设置缓冲区大小。
因此,Git 2.34(2021 年第四季度)放弃了对 cURL 库的旧版本(7.19.4 之前)的支持:
请参阅Jeff King ( )的提交 644de29、提交 013c7e2、提交 1119a15(2021 年 7 月 30 日) 。
请参阅Ævar Arnfjörð Bjarmason ( ) 的提交 8dda4cb和提交 5db9d38(2021 年 7 月 30 日)。(由Junio C Hamano 合并 -- --在提交 e48a623中,2021 年 8 月 24 日)peff
avar
gitster
http
: 放弃对 curl < 7.11.1 的支持
签字人:Jeff King
签字人:Ævar Arnfjörð Bjarmason
放弃对这个古老版本的 curl 的支持,并通过让我们摆脱一些“#ifdef”来简化代码。
由于我们CURLOPT_POSTFIELDSIZE
在37ee680中使用(“ http.postbuffer
:允许全范围ssize_t
值”,2017-04-11,Git v2.13.0-rc1 -- merge),Git 不会使用 7.11.1 之前的 vanilla curl 构建。
此字段是在 curl 7.11.1 中引入的。
我们可以用 more 来解决这些编译问题#ifdefs
,但这不值得。
7.11.1 版于 2004 年 3 月发布,距今已有 17 年之久。
让我们声明它太旧并丢弃任何更早的存在ifdefs
。
一个明显的好处是我们将有更少的条件位使代码混乱。
此补丁删除了所有#ifdefs
引用旧版本的内容(请注意,curl 的预处理器宏是十六进制的,所以我们正在寻找 070b01,而不是 071101)。