2011-07-09 10 views
8

SVN funcionaba bien hasta hace unos minutos - Todavía puedo navegar en mi repositorio en http://svn.example.com/myrepo pero cuando intento realizar cualquier operación , incluyendo svn arriba, me sale:SVN funciona bien y luego "svn: OPTIONS 200 OK" error y "no existe"

svn: OPTIONS of 'http://svn.example.com/myrepo': 200 OK (http://svn.example.com) 

Y cuando intenté svn cleanup http://svn.example.com/myrepo sólo para ver lo que sucedería, que tengo:

svn: 'http://svn.example.com/myrepo' does not exist 

Una vez más - que teclear en el navegador, todavía puedo navegar el repositorio está bien. ¿¿Que esta pasando??

+0

¿Estás absolutamente seguro usted está escribiendo la misma cosa en el navegador que se encuentre en la línea de comandos. Sé que he terminado en aventuras de 40 minutos antes de todo porque estaba usando '.net' en lugar de' .com' o porque me faltaba un segmento de ruta en mi url :-) – prodigitalson

+0

¿No debería ser la URL del repositorio "http : //svn.mywebsite.com/svn/myrepo "? – pmod

+0

@prodigitalson: No escribo nada en la CLI, a excepción de la línea de "limpieza", que pegué del portapapeles tal como lo hice en el navegador. El "svn up", "svn info" y otros comandos que he probado son solo operaciones en la copia de trabajo existente. Estaba funcionando, y luego no. No cambié nada. –

Respuesta

10

Bien, entonces resulta que la solución a este problema fue muy básica – y también muy complicada.

La respuesta simple:

svn.mywebsite.com El nombre de host no existe (al menos, no tan lejos como mi servidor de desarrollo se refiere).

Para cualquier otra persona que tenga este problema, le recomiendo abordar el problema asumiendo que, por alguna razón, su cliente simplemente no puede encontrar el servidor SVN.

-

La complicación:

Ahora para mí, que resultó ser un poco más complejo, ya que como he mencionado antes, que estaba trabajando - y luego se detuvo.

La razón de esto, en caso de estar interesado, es que nuestro servidor SVN vive en un servidor web junto con nuestro principal de la aplicación (que se encuentra en http://www.mywebsite.com), que pasa a ser reflejado en otro servidor, y el DNS los registros para mywebsite.com se están distribuyendo en un patrón AB entre los dos servidores. Como el cliente SVN en mi servidor de desarrollo no podía encontrar svn.mywebsite.com, estaba buscando simplemente mywebsite.com. Una vez que se conectó al servidor "A", donde existen los registros del host virtual para el servidor SVN, Apache asumió el control y envió el contenido apropiado al svn.mywebsite.com.

Pero en algún momento, mi caché DNS se actualizó y, sin lógica de aplicación disponible para enviar silenciosamente al usuario al servidor "A", mi servidor de desarrollo comenzó a resolver mywebsite.com en el servidor "B", donde SVN ni siquiera ha sido instalado.

Obviamente, fue entonces cuando el cliente SVN comenzó a decir "uh, gee, no hay tal servidor". (¿Quién sabía que eso es lo OPCIONES bla bla 200 OK entiende?)

¿Por que soy un idiota

Aquí es donde entra el error inevitable ID10T en juego. La razón por la que podía navegar consistentemente hasta "http://svn.mywebsite.com/myrepo" en Firefox, era porque había creado manualmente una entrada de host en mi PC apuntando a la dirección IP del servidor "A".

Si hubiera recordado eso antes, me hubiera ahorrado un montón de tiempo – y unas preciosas tabletas de ibuprofeno.:)

8

Problema similar aquí, con una causa y una solución diferentes.

La respuesta simple

degradar el cliente de Subversion.

La respuesta más complicada

Anteriormente, había estado utilizando 1.6.11 (particularmente [email protected]) y que funcionó bien. Actualizado a 1.6.17 ([email protected]) y luego comenzó a recibir el error OPTIONS of ... 200 OK. La degradación la volvió a arreglar. Todo esto se volvió más confuso por el hecho de que (obviamente) aún podía navegar por el repositorio en mi navegador, y también en IntelliJ, que, supongo, usa su propio cliente SVN.

¿Por que soy un idiota

Como trabajo a través de dos repositorios SVN, y el otro funciona bien con las dos versiones del cliente, no se dio cuenta del problema hasta unos pocos días después de que yo actualizado, así que no entendí de inmediato la causa. Si me hubiera dado cuenta de eso antes, me habría ahorrado mucho tiempo, ¡aunque me detuve casi sin tocar los analgésicos!

</plagio descarado de la respuesta de Brian Lacy >

4

tuve este problema después de actualizar mi servidor SVN a 1,7

me fijo esto añadiendo lo siguiente a mi directiva ubicación Apache:

SVNAdvertiseV2Protocol Off 
+0

Estoy tratando de encontrar esa directiva sin suerte, ¿puede decirme dónde encontrarla exactamente? –

1

Tengo el mismo problema porque traté de agregar un segundo Repo SVN. Después de leer esta publicación, reconocí que tenía que agregar otro Ubicación establecido en mi archivo de configuración SVN (en mi caso: /etc/apache2/mods- habilitado/dav_svn.conf) con diferentes rutas. Ahora está funcionando después de reiniciar Apache.

3

Este error "svn: OPTIONS of" también puede aparecer si su servidor usa el puerto svn pero especifica el protocolo http en su url.

Eso es, me gustaría tener el error cuando intenté:

svn checkout http://genericsite.com/someproject/trunk someproject 

pero lo que debería haber estado haciendo era:

svn checkout svn://genericsite.com/someproject/trunk someproject 
0

¿Por qué no una solución más para un error ridículamente ambigua ¿mensaje? En mi caso, el repositorio SVN fue creado por el usuario raíz por lo que los permisos eran incorrectos.

chown -R apache:apache /var/www/svn/foo 

Y, puesto que estoy ejecutando SELinux, también hice esto para la buena medida:

chcon -R system_u:object_r:httpd_sys_content_t:s0 /var/www/svn/foo 

ETA:

Un fácil de detectar los síntomas de este problema está en sus registros de Apache .Tenga en cuenta, no hay cuerpo enviado en respuesta a la solicitud OPCIONES:

"OPTIONS /rancid HTTP/1.1" 200 - "-" "SVN/1.6.11 (r934486) neon/0.29.3" 

Después de los cambios:

"OPTIONS /rancid HTTP/1.1" 200 97 "-" "SVN/1.6.11 (r934486) neon/0.29.3"