2 Stimmen

Wie kann ich außerhalb meines Git-Hook-Verzeichnisses wechseln?

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.

3voto

VonC Punkte 1117238

Sie müssen nicht irgendwohin wechseln, wenn Sie klonen.
Sie können einfach den Zielpfad als Parameter zum klonen Befehl hinzufügen.

git clone file:///xxx /pfad/wohin/klonen

(Stellen Sie sicher, dass der Zielpfad nicht existiert, sonst wird git sich weigern, dort zu klonen)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X