2012-10-16 17 views
5

私が理解しているように、gitはhttp転送を行うときにカールに頼ります(少なくともhttpを使用するときは、sshが異なると確信しています)。git pushを使用するときにカールするオプションを渡す

与えられたgitに特定のフラグをカールさせる方法はありますか?例えば私は、制限条件の下でgit pushコマンドをテストするために--limit-rate 100kのようなものを渡したいと思います。これは可能ですか?

+2

私はちょうどgitのソースコードを見てきました。残念ながら、通常の方法でそれを行うことはほとんど不可能です。 '--limit-rate'オプションは明らかにlibcurlのC APIのCURLOPT_BUFFERSIZEオプションに対応しますが、CURLOPT_BUFFERSIZEオプションはgitのソースコードでは使用されません。 –

+0

@タイゾイ:時間をかけてソースを見てくれてありがとう!それができない場合は、そうでなければなりません:) –

答えて

4

これはあなたの特定の質問に対する回答ではありませんが、同じ結果を得るのに役立ちます。

あなたは、例えば、netbrakeを使用することができます。

$ netbrake --limit 100k git push 

netbrakeの利点は、あなたが他のコマンドでそれを使用することができるということです。欠点はそれがLinux特有のことです。

また、環境変数を設定することもできます。 gitがそれらの変数を尊重しているかどうかはわかりません(他のプログラムも同じですが)。 connection options for Curlを確認してください。

+0

残念ながら私はMacやWindowsでこれを行う必要があります。 CURLOPT_MAX_SEND_SPEED_LARGEは、--limit-rate意味に一致すると思われるものです。 –

+0

私はそれを指していました。(CURLOPT_LOW_SPEED_LIMIT)は、あなたが指している意味が別の意味を持っているようです。環境変数はMacで動くはずですが、 '$ CURLOPT_MAX_SEND_SPEED_LARGE = 100k git push ...'を試すことができます。しかし、それはWindowsではうまくいかないかもしれません。 – gpoo

+0

奇妙なことに、私はカールを直接使っても(Macなし)、Mac上で動作させることができませんでした。例えば'CURLOPT_MAX_SEND_SPEED_LARGE = 10k curl ...'とアップロード速度はまだまだ超高です。私はまた、 'CURLOPT_MAX_SEND_SPEED_LARGE = 10k'をカールする前に、運がない状態で実行しようとしました。 –

関連する問題