Tengo un repositorio de HG local para el trabajo de mi cliente. He configurado el servidor HG antes en versiones anteriores de OS X sin ningún problema, pero en Yosemite estoy atascado. Utilicé el paquete mercurial de MacPorts, configuré Apache con un certificado SSL autofirmado y ya estoy listo... hgweb funciona bien y puedo extraer y ejecutar otros comandos.
Sin embargo, no puedo presionar:
$ hg push --debug --traceback -v
pushing to https://localhost/hg/website.com
using https://localhost/hg/website.com
sending capabilities command
using auth.default.* for authentication
localhost certificate matched fingerprint ************
using auth.default.* for authentication
http auth: user mike, password ************
using auth.default.* for authentication
localhost certificate matched fingerprint ************
query 1; heads
sending batch command
using auth.default.* for authentication
searching for changes
all remote heads known locally
sending branchmap command
using auth.default.* for authentication
sending branchmap command
using auth.default.* for authentication
preparing listkeys for "bookmarks"
sending listkeys command
using auth.default.* for authentication
1 changesets found
list of changesets:
c05e7b9045cf27f7508dcaaace632ba8a9940c4e
bundling: 1/1 changesets (100.00%)
bundling: 1/1 manifests (100.00%)
bundling: file1.txt 1/2 files (50.00%)
bundling: file2.txt 2/2 files (100.00%)
sending unbundle command
sending 12141 bytes
using auth.default.* for authentication
sending: 11/22 kb (50.00%)
sending: 11/22 kb (50.00%)
Traceback (most recent call last):
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mercurial/dispatch.py", line 138, in _runcatch
return _dispatch(req)
...
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mercurial/httppeer.py", line 172, in _call
fp = self._callstream(cmd, **args)
File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mercurial/httppeer.py", line 122, in _callstream
raise util.Abort(_('authorization failed'))
Abort: authorization failed
abort: authorization failed
El nombre de usuario y la contraseña son correctos... funcionan en la interfaz hgweb e incluso funcionaron en el resultado anterior durante los pasos anteriores (línea 8). También revisé los permisos del repositorio varias veces... el usuario _www tiene acceso completo:
$ ls -al /var/repos/website.com
total 0
drwxrwxr-x 3 _www staff 102 Oct 19 23:34 .
drwxrwxr-x 11 _www staff 374 Oct 27 02:09 ..
drwxrwxr-x 10 _www staff 340 Oct 19 23:34 .hg
Versión HG: 3.1.2, Versión OSX: 10.10, Versión Apache: 2.4.9
Cualquier ayuda o sugerencia será muy apreciada. ¡Gracias de antemano!
Respuesta1
Encontré la respuesta. No estoy seguro de por qué esto soluciona el problema, pero todo lo que tuve que hacer fue crear un archivo hgrc en el directorio .hg del repositorio en cuestión (no en el directorio clonado local) y agregar:
[web]
allow_push = *
En caso de que alguien encuentre esta respuesta al intentar depurar una parte diferente de la configuración, aquí hay un tutorial para toda la configuración de Mercurial en Yosemite.
http://www.curvingspace.com/2014/11/05/mercurial-on-yosemite/