2012-04-19 17 views
23

Wir möchten einige Meta-Informationen über das Commit in einer externen Datenbank speichern. Während eines Clones oder eines Checkouts sollte auf diese Datenbank verwiesen werden, und wir kopieren die Metainformationen in eine Datei im Repo, die geklont wird. Die Datenbank wird benötigt, anstatt nur eine Datei zu verwenden, um Indizes zu indexieren und zu suchen usw.Git Haken: Gibt es einen Klon Haken?

Ich dachte, wenn es einen Klon-Hook gibt, könnten wir dies auslösen. Ich konnte die Klon-Hooks im Sample in .git/hooks nicht finden. Ist dort eines? ist Post-Checkout Hook die einzige Möglichkeit auf Kundenseite?

Antwort

20

ok, eine Möglichkeit, dies zu tun, ist die Option clone --template.

Geben Sie den Speicherort an, an dem die clientseitigen Hooks als Wert für den Switch --template gespeichert werden. Die Hooks werden in den Klon kopiert und der Post-Checkout-Hook wird sofort ausgelöst!

+4

Das Vorlagenverzeichnis darf sich jedoch nicht im zu klonenden Repository befinden. Es muss bereits im Dateisystem vorhanden sein, bevor Sie es klonen. – chrishiestand

+1

http://StackOverflow.com/A/2141577/1183537 hat mir viel geholfen, mehr Klarheit, und Adressen, was Sie gesagt @ Chrishiestand – SuckerForMayhem

10

Wenn Sie Klonen ein Remote-Repository, können Sie keine clientseitige Hooks ausführen, da Hooks lokal zu Ihrer Arbeitskopie sind, und Sie eine von Grund auf neu erstellen. Wenn Sie ziehen neue Änderungen von einem Remote-Repository, wird Git Ihren lokalen post-merge -Hook ausführen, wenn es existiert.

Es gibt nichts auf dem Server als Ergebnis einer Pull Operation ausführen. Eine push Operation löst die update und post-update Haken des Servers aus.

Weitere Informationen finden Sie unter Git Book.