2010-03-23 7 views
18

Tengo un repositorio de Mercurial que puedo ver muy bien si navego por él en un navegador, pero cuando intento hacer un push, con mi ruta predeterminada establecida en la misma URL que visito en el navegador, obtengo esto :Mercurial: ¿Por qué recibo un error 404 cuando presiono a un repositorio cuya URL puedo pulsar en un navegador?

abort: HTTP Error 404: Not Found 

¿La URL que presiono debe ser diferente de alguna manera?

+0

Ver también: http://stackoverflow.com/questions/3068627/mercurial-client-error-255-and-http-error-404-when-attempting-to-push-large-file –

Respuesta

5

Es esto similar a this configuration, donde hgweb.config necesita ser configurado correctamente:

/ = /home/my_username/hg/** 

(con las dos estrellas a continuación, terminar)

O es un http vs. https issue?

Para https, necesita un correct .hgrc file, de lo contrario, también puede obtener el error 404.
Ver el .hg/hgrc file man page.

[ui] 

username = [email protected] 

password = mypassword 

schemes = https 

[paths] 

default = https://myURL.kilnhg.com/Repo/Repositories/Groups/myrepo 
+1

No fue el segundo, como intentar eso, no pareció ayudar. ¿Dónde debería tener un archivo hgweb.config?Parece que no pude encontrar dónde debería existir ese archivo en Windows (7). –

+1

@Mike: el 'hgweb.config' estaría en el lado del servidor: si no tiene acceso, solo podemos suponer que es correcto, y que su credencial/esquema de acceso son de alguna manera defectuosos. – VonC

+0

No sé si fue eso, específicamente, pero definitivamente fue una configuración del lado del servidor. –

2

que tenían el mismo problema y terminó siendo los verbos permitidos para el controlador CGI. Lo había limitado a GET, POST y HEAD, pero terminé cambiándolo para permitirlo todo y funciona bien ahora.

12

De repente comenzamos a tener este error en nuestro repositorio principal de Mercurial, alojado bajo IIS en Windows 2008. When your repository has too many heads, las cadenas de búsqueda Mercurial POSTs son más largas de lo que IIS elige manejar.

Lo puedes ver mirando el código de sub-estado de la solicitud fallida en los registros de IIS (normalmente es el número después del código de estado HTTP normal). En esta situación, IIS devuelve a sub-status of 15, lo que significa que la cadena de consulta es demasiado larga. ¡No olvide verificar sus códigos de estado secundario!

Para solucionar el problema, you'll need to increase IIS's maxiumum query string length:

# Get the current query string size limit 
c:\windows\system32\inetsrv\appcmd list config /section:requestFiltering -text:requestLimits.maxQueryString 

# Set the new query string size limit 
c:\windows\system32\inetsrv\appcmd set config /section:requestFiltering /requestLimits.maxQueryString:<NEW SIZE> 
+0

¡Es útil saber! – shambulator

+0

Agradable, esto me confundió por unas horas – redsquare

+1

Tuvimos este problema exacto y su respuesta lo arregló, muchas gracias! Para aquellos que pueden estar teniendo problemas para determinar si esto les está sucediendo: busque la cadena "404 15" en sus registros de IIS, si la encuentra después de una cadena de preguntas LARGA, esta respuesta también debería ayudarlo. –

12

"contenido demasiado grande" es lo que tenía. Vaya a los registros de IIS y busque "404 13".

Para solucionarlo, en el administrador de IIS, vaya a la opción "Solicitar filtrado" y luego seleccione la pestaña "Encabezados".

Luego vaya a "Editar configuración de funciones" a la derecha. A continuación, elija un número realmente grande para el campo "Contenido máximo permitido (bytes)".

Esto solucionó mi problema.

1

Recibí este error al intentar impulsar muchos conjuntos de cambios, especialmente uno de gran tamaño con muchos archivos binarios (actualización de jpg en un sitio web). [jpg bajo control de fuente, en el mismo repositorio que la fuente podría no ser el mejor enfoque, pero eso es además del punto.]

En tal caso, si no tiene acceso a la configuración de IIS, un trabajo -alrededor es empujar menos conjuntos de cambios a la vez. En TortoiseHg, use la función Saliente, haga clic con el botón derecho en el conjunto de cambios superior del subconjunto que desea insertar y seleccione Impulsar hasta aquí. Repetir.

Cuestiones relacionadas