2013-03-08 1 views
1

Il existe quelques git bare repo dans /home/git/repositories dir.
J'utilise le protocolede service git pour accéder à ces repos.
Par exemple, /home/git/repositories/root/spider.git est un dépôt brut git.Pourquoi je peux utiliser git-daemon servir mon repo git?

Ceci est la commande ps -ef | grep git résultat.

120  9638 1062 0 10:44 ?  00:00:00 /usr/local/libexec/git-core/git-daemon --verbose --reuseaddr --base-path=/home/git/repositories --export-all --max-connections=64 -- /home/git/repositories 

Quand j'exec git clone git://hostname/root/spider.git, je reçois:

Cloning into 'spider'... 
fatal: remote error: access denied or repository not exported: /root/spider.git 

Je vérifie la /var/log/git-daemon/current syslog, je reçois:

2013-03-08_02:56:02.42145 [9698] Connection from 127.0.0.1:60080 
2013-03-08_02:56:02.42149 [9698] Extended attributes (22 bytes) exist <host=hostname> 
2013-03-08_02:56:02.42186 [9698] Request upload-pack for '/root/spider.git' 
2013-03-08_02:56:02.42189 [9698] '/home/git/repositories/root/spider.git' does not appear to be a git repository 
2013-03-08_02:56:02.42221 [9638] [9698] Disconnected (with error) 

Répondre

2

Depuis le message d'erreur, vérifiez votre chemin et assurez-vous vous avez fait un

cd /home/git/repositories/root/ 
git init --bare spider 

Si cette pension existait déjà, mais directement dans « /home/git/repositories », alors vous devez adapter votre commande git clone:

git clone git://hostname/spider.git 

Enfin, assurez-vous que le git-démon processus a le droit d'accès le référentiel.

Le compte qui exécute git-dameon doit pouvoir accéder à /home/git/repositories/root/sipder.git.

+0

Merci pour votre réponse, mais le problème n'est pas encore résolu. J'ai vérifié le chemin et adapté ma commande. –

+1

@ 王振威 alors est-ce un problème? Est-ce que le processus a le droit d'accéder '/ home/git/repositories/root/sipder.git'? Est-ce que ce repo nu est protégé pour root? – VonC

+0

Merci Le résultat est que le processus n'a pas la permission d'accéder au repo, je l'ai résolu! –

1

Créez un fichier vide appelé git-daemon-export-ok dans le répertoire repo.

+2

Dans la question originale mentionnée '--export-all' traite de cela. – Kamiccolo

1

Ajoutez --enable=receive-pack à la ligne de commande git daemon pour activer le support send-pack (manual). Vous devrez alors git reset --hard.

Questions connexes