2011-09-12 5 views
1

私たちはしばらくSSH経由でプライベートgitリポジトリを使用してきました。これで、コードを配布するための読み取り専用バージョンを使用できるようにします。つまり、リモートユーザーがデプロイするコードをチェックアウトすることはできますが、リポジトリにプッシュバックすることはできません。どのように私は自動的に2つの裸の動向を同期させることができますか?

(これは、私たちは、これらすべてのリモート運用サーバーからのgitサーバーへのSSHアクセスを設定する必要がなく、複数の運用サーバーに展開できるようにすることを意図している。)

これまでのところ、私は主のクローンを作成することができましたウェブルートに出てプライベートセクションから、それを公開:

$ cd /path/to/web/root/git 
$ git clone --bare /repos/git/project-name project-name.git 
$ cd project-name.git 
$ touch git-daemon-export-ok 
$ git --bare update-server-info 
$ mv hooks/post-update.sample hooks/post-update 

...しかし、今/path/to/web/root/git/project-name.gitで結果のレポは、それがプライマリから更新されない限り無関係性にドリフトする運命にある、と私はつもりはありません毎日git fetchを手動で実行してください。どのように私はそれを自動的に更新するのですか?私はgit fetchを定期的にcronスクリプトで実行すべきですか、それともポストコミットフックが来るのでしょうか?

答えて

2

フックが対象ですが、両方が同じマシン上にある場合は、私は個人的にシンボリックリンクを使用します。

+1

以前は、運が悪い(通常はアクセス権の問題)ためにシンボリックリンクを試しました。どうやら、私が試したばかりのパターン、つまりWebルートにリポジトリを入れ、gitディレクトリにシンボリックリンクを置いたのは、私が試したことのないものでした。それは明らかに道のりです。ありがとう。 – pjmorse

関連する問題