J'ai désespérément essayé d'obtenir push pour git en passant par le mode "smart-http" en utilisant git-http-backend. Cependant, après de nombreuses heures de test et de dépannage, il me reste encore
error: Cannot access URL http://localhost/git/hello.git/, return code 22
fatal: git-http-push failed`
J'utilise les dernières versions d'Ubuntu (12.04), Apache2 (2.2.22) et Git (1.7.9.5) et j'ai suivi différents didacticiels trouvés sur Internet, comme celui-ci http://www.parallelsymmetry.com/howto/git .jsp .
Mon fichier VHost ressemble actuellement à ceci:
<VirtualHost *:80>
SetEnv GIT_PROJECT_ROOT /var/www/git
SetEnv GIT_HTTP_EXPORT_ALL
SetEnv REMOTE_USER=$REDIRECT_REMOTE_USER
DocumentRoot /var/www/git
ScriptAliasMatch \
"(?x)^/(.*?)\.git/(HEAD | \
info/refs | \
objects/info/[^/]+ | \
git-(upload|receive)-pack)$" \
/usr/lib/git-core/git-http-backend/$1/$2
<Directory /var/www/git>
Options +ExecCGI +SymLinksIfOwnerMatch -MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
</VirtualHost>
J'ai changé la propriété du /var/www/git
dossier pour root.www-data
et pour mes référentiels de test, j'ai activé la poussée anonyme en faisant git config http.receivepack true
. J'ai également essayé avec des utilisateurs authentifiés mais avec le même résultat.
Les référentiels ont été créés en utilisant:
sudo git init --bare --shared [repo-name]
En regardant le fichier access.log d'apache2, il me semble que WebDAV essaie d'être utilisé et que git-http-backend n'est jamais déclenché:
127.0.0.1 - - [20/May/2012:23:04:53 +0200] "GET /git/hello.git/info/refs?service=git-receive-pack HTTP/1.1" 200 207 "-" "git/1.7.9.5"
127.0.0.1 - - [20/May/2012:23:04:53 +0200] "GET /git/hello.git/HEAD HTTP/1.1" 200 232 "-" "git/1.7.9.5"
127.0.0.1 - - [20/May/2012:23:04:53 +0200] "PROPFIND /git/hello.git/ HTTP/1.1" 405 563 "-" "git/1.7.9.5"
Qu'est-ce que je fais mal? Est-ce un problème avec la version de git et / ou apache que j'utilise peut-être?
BTW: J'ai lu toutes les questions liées à git http sur ServerFault et StackOverflow, et aucune ne m'a fourni de solution, alors ne marquez pas cela comme double.