2012-03-28 4 views
1

gitリポジトリにプロジェクトがあります。プロジェクトには、現在のバージョンのプロジェクトが常に安定している「安定」または「生産」というブランチがあります。私は理想的には常に最新のバージョンの安定版ブランチを持つべきである実動サーバーを持っています。特定の間隔でcronジョブをプルすることができますが、私はその解決策には満足していません。安定したブランチのバグを見つけた後、しばしば1時間後に5つのホットフィックスを押すことができました。私はプロダクション・サーバーがプッシュされると、それらの新しいコミットを直ちにプルすることを望みます。新しいコミットが入ったときにブランチからの更新を自動的にプルするようにサーバーを設定できますか?

これを行う最も簡単な方法は何ですか?私のフォールバックの解決策は、私のプロダクションサーバーに1分ごとにプルを実行させることです。

答えて

2

プロダクションサーバーにプッシュするポストコミットフックを実行できます。

また、1分ごとに引っ張っても悪い解決策には見えません。

+0

+1ポスト・コミット・フックの場合。 OPは "シンプル"と指定していたと思いますが、ポーリングはそれほど理想的ではありません。 -/ – ghoti

+0

私はあなたの答えの最初の文章で混乱しています。私の質問はプッシュとは関係なく、プロダクションサーバがプルするだけです。S – Hubro

+0

@コードミーキーローカルリポジトリに変更をプッシュするフックがある可能性があります。リモートレポが変更を受け取ると、すぐに捕捉する必要がある場合は、「更新後」フックを使用できます。 http://book.git-scm.com/5_git_hooks.htmlを参照してください。それは良い説明と考えられる可能性のあるすべてのフックを持っています。 – kan

0

ビルドサーバー(Bamboo、Hudson、Cruisecontrolなど)がある場合は、ソースで更新が検出されたときに別のブランチでプルをトリガするタスクを設定することもできます。私たちはネイティブgitを使ってBambooでタスクを設定しています。

+1

Afaik、ビルドサーバーは定期的に更新を検出するので、実質的に同じです。しかし、このアプローチにはより多くの機能があります。 – kan

+0

AnthillProには少なくとも、ポーリングよりもポストコミットトリガー用のフックがあります。他のツールもあります。内部的には、これを使用して、Webサイトにコミットがあるときに新しい「ビルド」が作成され、自動的にテストサーバーにプッシュされます(約1分)。それをオンデマンドでプロダクションにプロモートできます。 – EricMinick

関連する問題