Git Haken und wie sie funktionieren

8

Ich versuche also, Hudson mit einem Post-Receive-Hook aufzubauen. In meinem lokalen Git-Repo habe ich post-receive.sample gesetzt, um nur post-receive, chmod 755 und hinzugefügt in der Zeile:

%Vor%

Wenn ich einen Build erzwinge, aktualisiert Hudson den Code, aber hier ist, was ich nicht verstehe, die Hooks in diesem Repo haben nicht die .sample nach ihnen, wie sie es lokal tun, und die Post-Empfang im Hudson Repo hat diese Codezeile nicht oben. Was ist hier los und wie sind Hooks in den ganzen Git Prozess integriert? Muss ich diesen Haken am Remote Repo ändern? Ich hätte gedacht, es wäre genug, um es lokal zu tun und zu schieben, damit jeder, der von diesem Repo kommt, die neuen Hooks bekommt. Ich kann nicht verstehen, wie der Repo anderer Benutzer verschiedene Hooks haben würde.

    
brad 11.11.2009, 18:47
quelle

2 Antworten

16

Sie haben grundsätzlich zwei Möglichkeiten:

  1. Platzieren Sie den post-receive Hook auf dem Server und lassen Sie den Server curl laufen.
  2. Platziere einen post-commit Haken in deinem lokalen Repo und lass deine lokale Box laufen.

Da Ihr Build-Job wahrscheinlich den zu erstellenden Code aus dem Repo auf dem Server holt, ist nur Option 1 sinnvoll. Im Fall 2. müsste der Build-Job wahrscheinlich den Code aus Ihrer lokalen Box holen, und das ist wahrscheinlich nicht das, was Sie wollen.

Mit git push können Sie keine Hooks auf dem Server platzieren. Sie (oder jemand mit den entsprechenden Berechtigungen) muss dies tun, indem Sie sich manuell bei server anmelden und die Hook-Skriptdateien lokal ändern.

    
ndim 11.11.2009, 19:57
quelle
11

Hooks werden nicht über das Repository freigegeben. Sie müssen den Haken auf der Remote-Seite installieren.

    
Stefan Näwe 11.11.2009 19:27
quelle

Tags und Links