2008-10-30 10 views
6

Espero que alguien pueda responder mi pregunta.Subversion hook no acepta certificado permanentemente

Tengo la configuración de Subversion, servida por Apache2 + SSL, haciendo desarrollo web.

Quiero un enganche post-commit que ejecute svn update en mi servidor de prueba, por lo que cuando alguien se comprometa, actualizará automáticamente el sitio de prueba. El gancho no funciona porque el certificado es autogenerado y no es confiable.

He intentado aceptar (p) de forma correcta, pero no es así.

¿Alguna idea?

Respuesta

1

Podría ser que la subversión se está ejecutando como un usuario diferente al que ya recibieron el certificado con la convocatoria del gancho. Intente descubrir quién es el usuario (por ejemplo, ponga "echo $ USER>/tmp/svn-hook-user" en la secuencia de comandos post-commit hook) y use sudo para aceptar el certificado como ese usuario.

Alternativamente, consulte el libro de Subversion sobre cómo configurar su configuración para que se acepten certificados autofirmados: SSL certificate management.

0

¿Estás usando sudo o algo en el script? Sudo generalmente limpia las variables de entorno, por lo que HOME no existe. Debe tener un directorio inicial grabable donde Subversion pueda almacenar la información sobre el certificado aceptado permanentemente. Así que configura la variable HOME al comienzo del script y debería funcionar.

8

root poseía la carpeta .subversion en my $ HOME, así que la eliminé y ejecuté 'svn up' de nuevo. Todo está bien ahora.

+3

Votado porque busqué en Google esta respuesta y esto me apuntó en la dirección correcta. '(p)' falla porque ~/.subversion no es propiedad del propietario actual. arreglalo.en caso de duda, ejecute 'strace e-trace = file svn up' y vea qué archivo silenciosamente errores al intentar escribir –

+1

Siempre me había preguntado por qué SVN no recordaría mis contraseñas guardadas o certs confiables, y esta era la respuesta que necesitaba . ¡Gracias! –

5

En Linux:

Aquí me solucionó el problema por chmodding los archivos de $ HOME/.subversion/auth/-RW a svn.ssl.server-r - r--. Aparentemente, si un servidor obtiene un certificado nuevo o actualizado, Escribe el nuevo archivo, pero no agrega derechos de escritura para sí mismo. con -r - r - r-- derechos el programa svn funciona, pero no puede escribir el indicador "Aceptar permanentemente" en el archivo ... :)

0

Tenía el mismo problema al configurar esto en el servidor de Windows con Apache. El enganche post commit fallará. No estoy seguro de que SVN sea independiente, pero utilizo el Servidor VisualSVN que se ejecuta como un Servicio de Windows. La cuenta de usuario predeterminada para este servicio era Servicio de red, así que simplemente cambié la cuenta a mi propia cuenta de administrador y todo funcionó.

0

Cuando su sitio de prueba está en el mismo servidor, use file: /// para verificar el repositorio y evitar la comprobación de cert.

svn co file:///path_to/your/repo