J'ai résolu un problème similaire.Ce n'est peut-être pas exactement ce qui se passe dans votre cas, mais vous pouvez essayer de réappliquer le même dépannage que j'ai fait. Je me suis rendu compte que lorsque je poussais des touches pour un nouvel utilisateur, je recevais ce stacktrace, qui est le symptôme que le hook sur gitosis n'a pas réussi à traiter la nouvelle clé.
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
L'erreur montrait que UNE FOIS, donc je naïvement rejeté comme un échec momentané. En pratique, Gitosis ne fonctionnait que pour ma clé, mais elle ne fonctionnait pas pour aucun des utilisateurs que j'essayais de supporter. Dans le ~/.ssh/authorized_keys
je ne pouvais pas trouver la clé publique de l'utilisateur que je pensais que je venais d'ajouter. C'est pourquoi mon ami continuait à se faire demander son mot de passe chaque fois qu'il tentait de le cloner.
j'ai ajouté le débogage à la configuration Gitosis, en ajoutant ces deux lignes à gitosis.conf
[gitosis]
loglevel=DEBUG
je devais continuer à ajouter et supprimer des utilisateurs dans le fichier gitosis.conf de sorte que le crochet serait déclenché à nouveau. Mon journal de débogage a révélé
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! Comme le crochet effectué la "promenade" à travers le référentiel, il avait trouvé un répertoire .git
sous legacy.d/buildtools
et c'est exactement où le assert ext == '.git'
s'est produit.
J'avais utilisé le serveur pour stocker un simple clone provenant d'un autre référentiel. Remarquez, un clone simple, pas un miroir ou un dépôt nu. Comme chaque clone, il contenait le répertoire .git.
Le hook dans Gitosis ne sait pas quoi faire avec un répertoire .git. Il pense que c'est un référentiel dans un nom vide et abandonne. Une fois que j'ai éliminé ce clone, tout a bien fonctionné.
ou peut-être simplement redémarrer votre console – Reda