1 votes

MKCOL 405 et LOCK 500 sur git push (erreur : cannot lock existing info/refs)

J'ai quelques difficultés à mettre en place un serveur Git avec Apache.

Voici mon gitrepo.conf :

DavLockDB "opt/local/apache2/var/DavLock"

<Directory /opt/local/apache2/htdocs/repo>
  DAV On
  Deny from all
  AuthType Basic
  AuthName "Git repositories"
  AuthUserFile /etc/apache2/other/htpasswd
  AuthGroupFile /etc/apache2/other/htgroup-git
</Directory>

<Directory /opt/local/apache2/htdocs/repo/myproject.git>
  Allow from all
  Order allow,deny
  <Limit GET>
    Require group myproject-reader
  </Limit>
  <Limit GET PUT POST DELETE PROPFIND PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
    Require group myproject-writer
  </Limit>
</Directory>

Quand je git push à http://admin@localhost/repo/myproject.git je reçois ça :

error: cannot lock existing info/refs
fatal: git-http-push failed

Voici un extrait de mon journal d'accès :

::1 - - [28/Jul/2012:19:05:52 +0100] "GET /repo/myproject.git/info/refs?service=git-receive-pack HTTP/1.1" 401 401
::1 - admin [28/Jul/2012:19:05:52 +0100] "GET /repo/myproject.git/info/refs?service=git-receive-pack HTTP/1.1" 401 401
::1 - admin [28/Jul/2012:19:05:55 +0100] "GET /repo/myproject.git/info/refs?service=git-receive-pack HTTP/1.1" 200 -
::1 - admin [28/Jul/2012:19:05:55 +0100] "GET /repo/myproject.git/HEAD HTTP/1.1" 200 23
::1 - - [28/Jul/2012:19:05:57 +0100] "PROPFIND /repo/myproject.git/ HTTP/1.1" 401 401
::1 - admin [28/Jul/2012:19:05:57 +0100] "PROPFIND /repo/myproject.git/ HTTP/1.1" 207 558
::1 - admin [28/Jul/2012:19:05:57 +0100] "HEAD /repo/myproject.git/info/refs HTTP/1.1" 200 -
::1 - admin [28/Jul/2012:19:05:57 +0100] "HEAD /repo/myproject.git/objects/info/packs HTTP/1.1" 200 -
::1 - admin [28/Jul/2012:19:05:57 +0100] "MKCOL /repo/myproject.git/info/ HTTP/1.1" 405 249
::1 - admin [28/Jul/2012:19:05:57 +0100] "LOCK /repo/myproject.git/info/refs HTTP/1.1" 500 535

Il semble que je reçoive l'erreur 405 avec MKCOL et l'erreur 500 avec LOCK.

Et voici mon error_log :

[Sat Jul 28 19:05:52 2012] [error] [client ::1] user admin: authentication failure for "/repo/myproject.git/info/refs": Password Mismatch
[Sat Jul 28 19:05:57 2012] [error] [client ::1] Could not LOCK /repo/myproject.git/info/refs due to a failed precondition (e.g. other locks).  [500, #0]
[Sat Jul 28 19:05:57 2012] [error] [client ::1] The locks could not be queried for verification against a possible "If:" header.  [500, #0]
[Sat Jul 28 19:05:57 2012] [error] [client ::1] Could not open the lock database.  [500, #400]
[Sat Jul 28 19:05:57 2012] [error] [client ::1] (2)No such file or directory: Could not open property database.  [500, #1]

Et je Je suis en entrant le mot de passe correct comme des commandes comme git remote show origin qui demande le mot de passe l'accepte sans problème.

Des idées ?

0voto

oxxo Points 71

J'ai finalement trouvé la solution, et c'était tellement simple en plus.

Ceci :

DavLockDB "opt/local/apache2/var/DavLock"

aurait dû être ça :

DavLockDB "/opt/local/apache2/var/DavLock"

remarquer le / au début du nom de fichier.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X