Ich schreibe meinen eigenen git Post-Receive-Hook in Ruby und er sieht in etwa so aus:
if !File.exists?(rep_dir+repo)
puts "Repositorium #{repo} wird nach #{rep_dir} geklont."
`cd #{rep_dir}; sudo git clone file:////home/git/repositories/#{repo}.git`
exit
end
Dieser Hook ist in den gitolite Common Hooks eingerichtet, also wenn ich Konfigurationen für ein neues Repository pushe, klone ich es sofort an einen neuen Ort.
Ich überprüfe auch für jedes Projekt in der gitolite-Konfiguration, ob das Repository für jedes Projekt existiert, aber das ist nicht, wo ich Probleme habe.
Mein Problem ist, dass ich jedes Mal, wenn dieses Skript ausgeführt wird, folgende Fehlermeldung erhalte:
remote: cd: 1: kann nicht in /home//repositories/ wechseln
remote: Klone Repository gitolite-admin nach /home//repositories/.
Das Repository wurde nicht in das Zielsverzeichnis geklont, nachdem der Hook ausgeführt wurde. Ich habe gelesen, dass man die GIT_DIR Umgebungsvariable zurücksetzen soll, aber ohne Erfolg.