使用git push时向curl传递选项

6
据我了解,git在进行http传输时(至少在使用http时是这样,ssh可能不同),依赖于curl。
鉴于此,有没有办法让git向curl传递特定的标志?例如,我想传递--limit-rate 100k之类的标志,以在受限制的条件下测试git push命令。这可行吗?

3
我刚刚查看了git的源代码。不幸的是,以常规方式几乎不可能这样做。 --limit-rate选项显然对应于libcurl C API中的CURLOPT_BUFFERSIZE选项,但是在git的源代码中并未使用CURLOPT_BUFFERSIZE选项。 - Taizo Ito
@TaizoIto:感谢您抽出时间查看源代码!如果无法完成,那就算了 :) - David Ebbo
1个回答

4

虽然这并不是对您具体问题的答案,但它可以帮助您获得相同的结果。

例如,您可以使用netbrake

$ netbrake --limit 100k git push
< p > Netbrake 的好处是可以与任何其他命令一起使用。缺点是它只适用于Linux。

另一种选择是设置环境变量。我不确定git是否会尊重这些变量(虽然其他程序会)。请查看Curl的连接选项


不幸的是,我需要在 Mac 或 Windows 上完成这个任务。:( 不过我会尝试调整环境变量,虽然你指出的那个(CURLOPT_LOW_SPEED_LIMIT)似乎有不同的语义。CURLOPT_MAX_SEND_SPEED_LARGE 是看起来与 --limit-rate 语义相匹配的选项。 - David Ebbo
我指出那个是因为它是连接选项中的第一个 :-) 环境变量应该在Mac上工作,你可以尝试 $ CURLOPT_MAX_SEND_SPEED_LARGE=100k git push...。但这可能在Windows上不起作用。 - gpoo
奇怪的是,即使直接使用curl(没有git),我在Mac上也无法使其工作。例如CURLOPT_MAX_SEND_SPEED_LARGE=10k curl ...和我的上传速度仍然非常高。我还尝试在curl之前运行export CURLOPT_MAX_SEND_SPEED_LARGE=10k,但没有成功。 - David Ebbo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接