Git push origin master : erreur 22
Par Mathieu le samedi 26 novembre 2011, 18:04 - Hacks - Lien permanent
Petite note pour eux qui ont comme moi suivi les conseils et les exemples sur Internet pour installer un serveur Git avec WebDAV, il faut savoir que c’est comme avec Subversion, le serveur WebDAV aime pas trop les protocoles loufoques (https, as-t-on idée ?), et qu’il faut lui expliquer gentiment de faire de la substitution de protocole, pour le calmer.
Bref, comme j’ai cherché pendant trois heures, je vous livre la solution à cette erreur 22, il faut expliquer à Apache de remplacer https par http lorsqu’il passe à WebDAV.
RequestHeader edit Destination ^https http early
En principe ça ne change rien sur le fait que la connexion soit chiffrée, ça calme juste le module WebDAV derrière, pour qu’il retrouve ses petits. Autre petite astuce, pour éviter que un client un peu bête ne passe sur le http parce qu’il a pas compris :
SetEnv redirect-carefully 1
Et en exclusivité mondiale, je vous livre ma configuration, au cas où ça vous serait utile :
Pour Subversion :
SetEnv redirect-carefully 1
RequestHeader edit Destination ^https http early
<Directory /path/to/repos/>
AllowOverride None
Options Indexes
Order allow,deny
Allow from all
</Directory>
<Location /repos>
DAV svn
SVNPath /path/to/repos/
SetEnv redirect-carefully 1
AuthType Basic
Authname "Subversion repository"
AuthUserFile /path/to/passwd
AuthzSVNAccessFile /path/to/authz
# Repository accessible en lecture sans identification
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
Pour Git :
SetEnv redirect-carefully 1
RequestHeader edit Destination ^https http early
Alias /repos /path/to/repos
<Directory /path/to/repos>
AllowOverride None
Options Indexes MultiViews
Order allow,deny
Allow from all
</Directory>
<Location /repos>
DAV on
SetEnv redirect-carefully 1
AuthType Basic
Authname "Git repository"
AuthUserFile /path/to/repos
#Oui, normalement là il faudrait une gestion des groupes pour read/write mais bon...
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
</Location>