git push files grandes fatal final remoto colgó inesperadamente – Apache proxypassreverse problema

Acabo de configurar git-http-backend en una máquina WS2008 usando Apache y Basic Auth para tirar y empujar.

Puedo crear un repository vacío en el server de alojamiento y clonarlo con git clone http: //user@server.com/repositories/Test.git

Esto funciona bien, puedo agregar files y devolverlos. Eso funciona bien. ¡Pensé que lo tenía todo funcionando!

Ahora estoy tratando de poner algunos de mis proyectos en (C # .net cosas). Primero intenté simplemente copyr el directory .git y ponerlo en el server que parecía tener problemas. Así que pensé en crear un repository simple, clonarlo en la máquina local, copyr en files, luego confirmar y volver al server. Todo parece funcionar hasta que bash y empuje mi file sln. En ese punto pasa por la compression y escritura de objects, etc. pero los errores con:

error: RPC failed; result=22, HTTP code = 417 fatal: The remote end hung up unexpectedly fatal: The remote end hung up unexpectedly 

En el logging de error del server Apache tengo:

 fatal: Needed a single revision fatal: Needed a single revision 

Lo único que puedo ver en access.log es:

 192.168.10.96 - - [22/Oct/2010:23:06:06 +0100] "GET /repositories/CodeTest.git/info/refs? service=git-receive-pack HTTP/1.1" 200 153 

Después de este punto, ya no puedo presionarlo aunque elimine el file sln. Soy nuevo en GIT y estoy bastante confundido sobre lo que podría estar sucediendo aquí.

Cualquier ayuda o consejo sería genial.

EDITAR para que pueda crear un file de text y cambiarle el nombre a test.sln y eso funciona. Pero si creo un file de text y copio el contenido del file sln, volverá a fallar.

EDITAR 2 Parece que no son solo files SLN, sino algunos de los files dentro de un proyecto / solución. Tengo una solución que tiene múltiples proyectos, así que elijo un solo proyecto que solo tenía unos pocos files y ningún SLN (tenía un file proj). Esto también falló.

Estoy empezando a sentir que podría ser un problema de encoding o una terminación de línea con files creados por VS2010 o algo así. No estoy seguro de cómo probar esto sin embargo.

EDIT 3 Parece que son files grandes que no se pueden presionar. Intenté esto tanto en la configuration del cliente como del server pero no lo solucionó.

EDITAR 4 Si hago todo en el server, creo un nuevo repository, clono el repository vacío, copio todos los files a un nuevo clon, git add y git commit, luego git push it funciona. Esto sugeriría un problema de networking o time de espera. El clon que hice fue http: // user @ localhost .

EDITAR 5 Parece que el problema es con la configuration de mi networking. Tengo una IP externa para que todo el tráfico HTTP entre en una caja de Apache Linux, la mayoría de mi sitio se sirve desde allí, pero algunos usan otras cajas, por lo que utiliza el proxy pass reverse para servir el contenido. Tengo un subdominio "git.myserver.com" para esto. Apache en el server GIT está realmente en el puerto 8000, si abro el puerto 8000 en el firewall externo y lo señalo directamente en el server GIT, funciona. Así que solo puedo suponer que en algún lugar del primer server apache está muriendo. solo para confirmar que el error fatal es casi instantáneo, por lo que los times de espera son less probables. Tal vez el proxy pass reverse reescribe algo, pero por qué solo afecta files más grandes es un misterio.

EDIT 6 en el server proxy de apache error.log obtengo:

 [Mon Oct 25 11:41:06 2010] [error] (103)Software caused connection abort: proxy: pass request body failed to 192.168.10.97:8000 (192.168.10.97) [Mon Oct 25 11:41:06 2010] [error] proxy: pass request body failed to 192.168.10.97:8000 (192.168.10.97) from 62.133.24.54 () 

por lo que parece que el proxy falla o algo en esa máquina cree que es malo.

Gracias

FWIW, tuve este mismo error, pero luego actualicé a git v1.7.7, y el error desapareció.

¿por qué no utilizas files compartidos? No es necesario que revises http con git.