2012-10-16 13 views
5

Come ho capito, git si basa su arricciatura durante i trasferimenti http (almeno quando si utilizza http, sono sicuro che ssh è diverso).Passando le opzioni per arricciare quando si utilizza git push

Dato questo, c'è un modo per far sì che Git passi bandiere specifiche per arricciarsi? per esempio. Mi piacerebbe passare qualcosa come --limit-rate 100k per testare un comando git push in condizioni strozzate. È possibile?

+2

Ho appena controllato il codice sorgente di git. Sfortunatamente, sembra quasi impossibile farlo in modo regolare. L'opzione '--limit-rate' apparentemente corrisponde all'opzione CURLOPT_BUFFERSIZE nell'API C di libcurl, ma l'opzione CURLOPT_BUFFERSIZE non è usata nel codice sorgente di git. –

+0

@TaizoIto: Grazie per aver dedicato del tempo a guardare attraverso le fonti! Se non può essere fatto, così sia :) –

risposta

4

Questa non è una risposta alla tua domanda specifica, ma può aiutarti a ottenere gli stessi risultati.

È possibile utilizzare netbrake, per esempio:

$ netbrake --limit 100k git push 

Il vantaggio di netbrake è che si può utilizzare con qualsiasi altro comando. Lo svantaggio è che è specifico per Linux.

Un'altra alternativa consiste nell'impostare una variabile di ambiente. Non sono sicuro se onorare queste variabili (anche se altri programmi lo fanno). Controlla il connection options for Curl.

+0

Purtroppo ho bisogno di farlo su Mac o Windows. :(Ci divertirò con la variabile env, anche se quella che hai indicato (CURLOPT_LOW_SPEED_LIMIT) sembra avere una semantica diversa. CURLOPT_MAX_SEND_SPEED_LARGE è quella che sembra corrispondere alla semantica a velocità limitata. –

+0

è stata la prima tra le opzioni di connessione :-) La variabile di ambiente dovrebbe funzionare in Mac, puoi sempre provare '$ CURLOPT_MAX_SEND_SPEED_LARGE = 100k git push ...'. Tuttavia, potrebbe non funzionare su Windows. – gpoo

+0

Stranamente, non ho potuto farlo funzionare su Mac anche se si utilizza l'arricciatura direttamente (senza git). per esempio. 'CURLOPT_MAX_SEND_SPEED_LARGE = 10k curl ...' e la mia velocità di upload è ancora molto alta. Ho anche provato a eseguire "export CURLOPT_MAX_SEND_SPEED_LARGE = 10k" prima di arricciare, senza fortuna. –