2012-03-28 2 views
1

Angenommen, ich habe ein Projekt in einem Git-Repository. Das Projekt hat einen Zweig namens "Stable" oder "Production", in dem die aktuelle Version des Projekts immer stabil ist. Ich habe einen Produktionsserver, der idealerweise immer die neueste Version des Stable Branch haben sollte. Ich weiß, dass ich einen Cronjob in einem bestimmten Intervall ausführen lassen könnte, aber ich bin nicht wirklich glücklich mit dieser Lösung. Oft konnte ich innerhalb einer Stunde fünf Hotfixes pushen, nachdem ich einen Fehler im stabilen Zweig entdeckt hatte. Ich möchte, dass der Produktionsserver sofort diese neuen Commits zieht, sobald sie gedrückt wurden.Kann ich meinen Server so einrichten, dass er automatisch Updates von einem Zweig abruft, wenn neue Commits eingehen?

Was wäre der einfachste Weg, dies zu tun? Meine Fallback-Lösung wird sein, dass mein Produktionsserver jede Minute einen Pull ausführt, also wäre alles andere gut.

Antwort

2

Sie könnten Post-Commit Hook, die auf den Produktionsserver schieben wird.

Auch das Ziehen jede Minute sieht nicht als eine schlechte Lösung aus.

+0

+1 für den Post-Commit-Hook. Polling ist weniger ideal, obwohl ich denke, das OP hat "einfachste" angegeben ...: -/ – ghoti

+0

Ich bin ein bisschen verwirrt durch den ersten Satz Ihrer Antwort. Meine Frage hat nichts mit dem Schieben zu tun, nur mit dem Ziehen des Produktionsservers: S – Hubro

+0

@Codemonkey Sie könnten einen lokalen Repo-Haken haben, der Änderungen an die Fernbedienung überträgt. Wenn Sie einen Moment brauchen, dann empfängt der Remote-Repo Änderungen, Sie könnten "Post-Update" Hook verwenden. Bitte beachten Sie die http://book.git-scm.com/5_git_hooks.html Es hat eine gute Erklärung und alle möglichen Haken, die Sie berücksichtigen können. – kan

0

Wenn Sie einen Build-Server haben (Bamboo, Hudson, Cruisecontrol usw.), können Sie Tasks auch so einrichten, dass ein Pull in einem anderen Zweig ausgelöst wird, wenn Updates in der Quelle gefunden werden. Wir haben Aufgaben in Bamboo eingerichtet, die mit nativem Git arbeiten.

+1

Afaik, die Build-Server erkennen Updates durch periodisches Ziehen, also ist es praktisch dasselbe. Der Ansatz hat jedoch mehr Funktionen. – kan

+0

AnthillPro verfügt mindestens über Hooks für Post-Commit-Trigger statt Polling. Einige andere Tools können auch. Intern verwenden wir dies, so dass, wenn die Website einen Commit hat, ein neuer "Build" erstellt und automatisch auf einen Testserver übertragen wird (ungefähr eine Minute insgesamt). Wir können das dann zur Produktion auf Anfrage fördern. – EricMinick

Verwandte Themen