Ik heb momenteel op mijn VPS een multi-user git omgeving gemaakt voor externe programmeurs.
Ik beheer de gebruikers middels gitolite en het idee was dat elke programmeur de push resultaten zou kunnen zien op bijv. http://dev.example.com
Dat laatste wilde ik realiseren met een post-receive hook.
Gitolite en alle repo's draaien onder de gebruiker "git"
Stel ik de hook: /home/git/repositories/project.git/hooks/post-receive als volgt in:
Dan komen de files na een push vanaf mijn workstation perfect aan in de directory "webdocs"
Echter als example.com je hoofd domein naam is en je wilt dat bestanden na een push in dev.example.com terecht komen, dan moet je in een andere user zijn mappen gaan porren.
Echter dan werkt het niet meer:
NOTE: eigen domeinnaam ff vervangen voor example.com
Ik heb al vanalles geprobeerd:
- user git toevoegen aan root group
- user git toevoegen aan apache group
- dev folder heel extreem op chmod 777
- git line in /etc/passwd aangepast zodat hij in group 0 (root) komt
- dev folder chown naar root:root en ook een keer naar git:git
Wat opvallend is dat hij zegt Could not switch to '/home/example/public_html': ipv Could not switch to '/home/example/public_html/dev
Iemand suggesties wat ik nog zou kunnen proberen?
Ik beheer de gebruikers middels gitolite en het idee was dat elke programmeur de push resultaten zou kunnen zien op bijv. http://dev.example.com
Dat laatste wilde ik realiseren met een post-receive hook.
Gitolite en alle repo's draaien onder de gebruiker "git"
Stel ik de hook: /home/git/repositories/project.git/hooks/post-receive als volgt in:
code:
1
2
| #!/bin/sh GIT_WORK_TREE=/home/git/webdocs git checkout -f |
Dan komen de files na een push vanaf mijn workstation perfect aan in de directory "webdocs"
Echter als example.com je hoofd domein naam is en je wilt dat bestanden na een push in dev.example.com terecht komen, dan moet je in een andere user zijn mappen gaan porren.
code:
1
2
| #!/bin/sh GIT_WORK_TREE=/home/example/public_html/dev git checkout -f |
Echter dan werkt het niet meer:
code:
1
2
3
4
5
6
7
8
9
| $ git push Counting objects: 3, done. Delta compression using up to 2 threads. Compressing objects: 100% (2/2), done. Writing objects: 100% (2/2), 234 bytes, done. Total 2 (delta 1), reused 0 (delta 0) remote: fatal: Could not switch to '/home/example/public_html': Permission denied To ssh://git@example.com:22/project.git e3f0e83..98d9d0a master -> master |
NOTE: eigen domeinnaam ff vervangen voor example.com
Ik heb al vanalles geprobeerd:
- user git toevoegen aan root group
- user git toevoegen aan apache group
- dev folder heel extreem op chmod 777
- git line in /etc/passwd aangepast zodat hij in group 0 (root) komt
- dev folder chown naar root:root en ook een keer naar git:git
Wat opvallend is dat hij zegt Could not switch to '/home/example/public_html': ipv Could not switch to '/home/example/public_html/dev
Iemand suggesties wat ik nog zou kunnen proberen?