2010-11-15 21 views
8

He intentado configurar un repositorio mercurial en mi servidor para que mi equipo pueda trabajar desde el suyo. Estoy ejecutando el servidor de Ubuntu 10.4 e hice la instalación de mercurial usando apt-get. Ahora todo esto fue sin problemas.HG Push Failed; Permiso denegado .hg/store/lock

que init un directorio con hg muy bien, tengo que instalar el hgrc de la siguiente manera:

[web] 
push_ssl = False 
allow_push = * 

[trusted] 
users = * 
groups= 

Luego ejecutar hg serve. El servidor comienza a escuchar. Puedo clonar este repositorio a otro equipo, pero cuando intento y empujar mis cambios me sale el error:

C:\Users\UserName\Project1>hg push http://MyInternalIP:8000 
pushing to http://MyInternalIP:8000 
searching for changes 
abort: HTTP Error 500: Internal Server Error 

En el lado del servidor me sale el siguiente error:

LockUnavailable: [Errno 13] Permission denied: '/home/UserName/projects/Project1/.hg/store/lock' 

Si alguien tiene una solución a cómo arreglar esto que sería increíble. Busqué en Google y encontré personas con problemas similares y dicen que puede tener algo que ver con que el usuario de la web no tenga permisos, pero soy nuevo en todo esto y ninguno de ellos ofrece soluciones sobre cómo solucionar el problema. Gracias por tu tiempo.

Respuesta

10

Debe permitir el acceso de escritura a los directorios del repositorio al usuario que ejecuta el proceso del servidor Mercurial. Es decir, la cuenta de usuario que ejecuta hg serve debe poder escribir en /home/UserName/projects/Project1/

BTW ¿Puede proporcionar más detalles sobre qué línea de comando utilizó para clonar el depósito?

+2

por qué no sólo chown para el usuario que ejecuta hg serve, y chmod -R 644 Proyecto1? –

+0

Si está ejecutando en apache2, el usuario predeterminado: group es www-data: www-data –

3

En mi caso con repositorio mercurial en Redmine

HTTP Error: 500 (Permission denied)

Run

chown -R www-data /path/to/repos 

en el servidor, que trabajó para mí.

(Fuente)