25. Dezember 2013

Große git commits mit HTTP übertragen

25. Dezember 2013 - Geschrieben von Martin - Keine Kommentare

Counting objects: 1753, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (1605/1605), done.
efatal: The remote end hung up unexpectedly
rror: RPC failed; result=22, HTTP code = 411
Writing objects: 100% (1656/1656), 1.21 MiB | 1.12 MiB/s, done.
Total 1656 (delta 667), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly
Everything up-to-date

Jeder der mit HTTP auf seinen git Server pusht kennt dieses Problem, bei großen Commits „hängt sich schnell einmal der Remote Server auf“. Um große git commits über HTTP zu übertragen muss beim Client die HTTP Post Buffer size erhöht werden. Standardmäßig liegt diese bei unter einem Megabyte, was beim commiten von Bibliotheken oder Mediendaten schnell einmal zu wenig wird:

git config http.postBuffer 524288000

Der Wert wird in bytes angegeben, hier also 500MB.

Schlägt das pushen nun wieder fehl, sollte auf Serverseite nocheinmal kontrolliert werden ob der Server überhaupt auf solche Datenmengen ausgelegt ist. Bei nginx beispielsweise fügt man hierzu in der Konfigurationsdatei des jeweiligen Servers einen Abschnitt hinzu:

http {
    client_max_body_size 500m;
}

Schreibe einen Kommentar