Resolví un problema similar.Puede que no sea exactamente lo que está sucediendo en su caso, pero podría tratar de volver a aplicar la misma solución de problemas que yo.
Me di cuenta de que cuando estaba presionando teclas para un nuevo usuario estaba obteniendo esta stacktrace, que es el síntoma de que el gancho en la gitosis no pudo procesar la nueva clave.
remote: Traceback (most recent call last):
remote: File "/usr/local/bin/gitosis-run-hook", line 9, in <module>
remote: load_entry_point('gitosis==0.2', 'console_scripts', 'gitosis-run-hook')()
remote: File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/app.py", line 24, in run
remote: return app.main()
remote: File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/app.py", line 38, in main
remote: self.handle_args(parser, cfg, options, args)
remote: File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/run_hook.py", line 81, in handle_args
remote: post_update(cfg, git_dir)
remote: File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/run_hook.py", line 45, in post_update
remote: config=cfg,
remote: File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/gitdaemon.py", line 95, in set_export_ok
remote: for (dirpath, repo, name) in walk_repos(config):
remote: File "/usr/local/lib/python2.7/dist-packages/gitosis-0.2-py2.7.egg/gitosis/gitdaemon.py", line 72, in walk_repos
remote: assert ext == '.git'
remote: AssertionError
El error estaba mostrando solamente VEZ, por lo que ingenuamente lo descartó como un fallo momentáneo.
En la práctica, Gitosis solo funcionaba para mi llave, pero no funcionaba para ninguno de los usuarios que estaba tratando de admitir. En el ~/.ssh/authorized_keys
no pude encontrar la clave pública del usuario que creía haber agregado. Esta es la razón por la cual a mi amigo siempre se le pedía una contraseña cada vez que intentaba clonar.
he añadido a la configuración de depuración Gitosis, mediante la adición de estas dos líneas a gitosis.conf
[gitosis]
loglevel=DEBUG
que tenía que seguir añadiendo y quitando los usuarios en el fichero de gitosis.conf manera que el gancho se pondría en marcha de nuevo. Mi registro de depuración reveló
remote: DEBUG:gitosis.gitdaemon:Deny 'syncShare'
remote: DEBUG:gitosis.gitdaemon:Walking 'legacy.d', seeing ['buildtools', 'QA_Dashboard']
remote: DEBUG:gitosis.gitdaemon:Walking 'legacy.d/buildtools', seeing ['.git', 'conf', 'scripts']
remote: Traceback (most recent call last):
etc ...
A-ha! A medida que el gancho realizaba el "recorrido" a través del repositorio, había encontrado un directorio .git
en legacy.d/buildtools
y ahí es exactamente donde se produjo el assert ext == '.git'
.
Había usado el servidor para almacenar un clon simple de algún otro repositorio. Aviso, un clon simple, no un espejo o un repositorio desnudo. Como cada clon, contenía el directorio .git.
El gancho en Gitosis no sabe qué hacer con un directorio .git. Cree que es un repositorio en un nombre vacío y aborta. Una vez que eliminé ese clon, todo volvió a funcionar bien.
o simplemente reinicie su consola – Reda