Archivo de la etiqueta: CVS

Post técnico #1: Push grandes en git

Este es mi primer post técnico, así que he decidido tildarlo como tal, para que los que no les gusta lo técnico no tengan que leerlo.

El caso es que he estado utilizando git en un proyecto y me encontré con el problema de no poder enviar (push) a otro repositorio un commit de gran tamaño, en este caso de 27MB aproximadamente. La transferencia la realizo mediante http y al intentar subir dicho commit obtenía el error

error: RPC failed; result=22, HTTP code = 500

fatal: The remote end hung up unexpectedly

y el envío (push) fallaba.

El meollo del problema radica en que el buffer empleado por HTTP para publicar archivos es demasiado pequeño. Lo que tenemos que hacer es incrementarlo a través de las configuración de Git, así:

git config http.postBuffer [size]

Donde size es el tamaño del buffer en bytes que queremos asignar. Por ejemplo, si queremos que el buffer de publicación sea de 100MB (es decir, si queremos que el límite superior del tamaño de los archivos sea de 100MB) entonces utilizamos el siguiente comando:

git config http.postBuffer 104857600

Y ahora si podemos enviar nuestros commits al repositorio en cuestión.