2012-10-16 16 views
5

Jak rozumiem, git polega na zwijaniu się przy transferze http (przynajmniej przy użyciu http, jestem pewien, że ssh jest inny).Podawanie opcji zwijania przy użyciu git push

Biorąc to pod uwagę, istnieje sposób, aby Git przekazać określone flagi do zwijania się? na przykład Chciałbym przekazać coś w rodzaju --limit-rate 100k, aby przetestować polecenie git push w warunkach dławionych. czy to możliwe?

+2

Właśnie sprawdziłem kod źródłowy git. Niestety, wydaje się prawie niemożliwe, aby zrobić to w zwykły sposób. Opcja '--limit-rate' najwyraźniej odpowiada opcji CURLOPT_BUFFERSIZE w API C libcurl, ale opcja CURLOPT_BUFFERSIZE nie jest używana w kodzie źródłowym git. –

+0

@TaizoIto: Dzięki za poświęcenie czasu na przeglądanie źródeł! Jeśli nie da się tego zrobić, to niech tak będzie :) –

Odpowiedz

4

To nie jest odpowiedź na konkretne pytanie, ale może pomóc uzyskać takie same wyniki.

Można użyć netbrake, na przykład:

$ netbrake --limit 100k git push 

Zaletą netbrake jest to, że można go używać z dowolnym innym poleceniu. Minusem jest specyficzny dla Linuksa.

Inną opcją jest ustawienie zmiennej środowiskowej. Nie jestem pewien, czy git honoruje te zmienne (chociaż inne programy to robią). Sprawdź connection options for Curl.

+0

Niestety muszę to zrobić na Macu lub Windowsie. :(Będę grał ze zmienną env, ale ten, na który wskażesz (CURLOPT_LOW_SPEED_LIMIT), wydaje się mieć inną semantyczną, CURLOPT_MAX_SEND_SPEED_LARGE jest tą, która wydaje się pasować do semantycznego -limit-rate semantycznego –

+0

Wskazałem to, ponieważ była pierwszą spośród opcji połączenia :-) Zmienna środowiskowa powinna działać na Macu, zawsze możesz wypróbować '$ CURLOPT_MAX_SEND_SPEED_LARGE = 100k git push ...'. To jednak może nie działać w systemie Windows. – gpoo

+0

O dziwo, nie mogłem zmusić tego do pracy na Macu, nawet jeśli używam curl bezpośrednio (no git). na przykład 'CURLOPT_MAX_SEND_SPEED_LARGE = 10k curl ...' a moja prędkość wysyłania jest wciąż bardzo wysoka. Próbowałem też uruchomić 'export CURLOPT_MAX_SEND_SPEED_LARGE = 10k' przed zwijaniem, bez powodzenia. –

Powiązane problemy