2012-10-16 6 views
5

Wie ich verstehe, verlässt Git auf Curl beim Ausführen von HTTP-Übertragungen (zumindest bei der Verwendung von http, ich bin mir sicher, ssh ist anders).Passing Optionen zu locken bei der Verwendung von git push

Gegeben, gibt es eine Möglichkeit, git spezifische Flags zum Curl passieren zu lassen? z.B. Ich möchte etwas wie --limit-Rate 100k übergeben, um einen Git-Push-Befehl unter gedrosselten Bedingungen zu testen. Ist das möglich?

+2

Ich habe gerade den Quellcode von git angesehen. Leider scheint es fast unmöglich, dies regelmäßig zu tun. Die Option --limitrate scheint der Option CURLOPT_BUFFERSIZE in der C-API von libcurl zu entsprechen, die Option CURLOPT_BUFFERSIZE wird jedoch nicht im Quelltext von git verwendet. –

+0

@TaizoIto: Danke, dass du dir die Zeit genommen hast, durch die Quellen zu schauen! Wenn es nicht gemacht werden kann, sei es so :) –

Antwort

4

Dies ist keine Antwort auf Ihre spezifische Frage, aber es kann Ihnen helfen, die gleichen Ergebnisse zu erhalten.

Sie können netbrake verwenden, zum Beispiel:

$ netbrake --limit 100k git push 

Der Vorteil netbrake ist, dass Sie es mit einem anderen Befehl verwenden können. Der Nachteil ist, dass Linux spezifisch ist.

Eine weitere Alternative ist die Einstellung einer Umgebungsvariablen. Ich bin mir nicht sicher, ob git diese Variable honoriert (obwohl andere Programme dies tun). Überprüfen Sie die connection options for Curl.

+0

Leider muss ich dies auf Mac oder Windows tun. :(Ich werde mit der env-Variable herumspielen, obwohl die, auf die Sie zeigen (CURLOPT_LOW_SPEED_LIMIT) eine andere Semantik zu haben scheint. CURLOPT_MAX_SEND_SPEED_LARGE ist diejenige, die der --limitraten-Semantik zu entsprechen scheint. –

+0

Ich wies darauf hin, weil war die erste unter den Verbindungsoptionen :-) Die Umgebungsvariable sollte im Mac funktionieren, Sie können immer versuchen, $ CURLOPT_MAX_SEND_SPEED_LARGE = 100k git push ... '. Das funktioniert unter Windows möglicherweise nicht. – gpoo

+0

Seltsamerweise konnte ich das nicht auf dem Mac ausführen, selbst wenn ich Curl direkt benutzte (kein Git). z.B. 'CURLOPT_MAX_SEND_SPEED_LARGE = 10k Curl ...' und meine Upload-Geschwindigkeit ist immer noch super hoch. Ich habe auch versucht, "CURLOPT_MAX_SEND_SPEED_LARGE = 10k" vor dem Curling auszuführen, ohne Glück. –

Verwandte Themen