2

私はgit post-receive フックを使用して、3 つのサーバー (開発、テスト、および運用) の 3 つのブランチ (マスター、ステージング、および安定) から Web アプリケーションのバージョンをデプロイしています。ブランチとサーバー間のペアリングは、現在スクリプトでハードコーディングされています。しかし、私はこの制限を取り除き、このフックで無制限の数のブランチを管理できるようにしたいと考えています。次の方法で実行できます。

  • すべてのブランチごとの設定オプションを別のファイルに移動します。たとえば、.git/???/<branch_name>
  • メインスクリプトは、そのようなファイルがすべてのブランチで利用可能かどうかを確認し、それをソースにして、そのファイルの構成パラメーターを使用してリモートサーバーにデプロイします。

.gitただし、そのようなファイルをディレクトリのどこに配置できるかは正確にはわかりません。それとも、より良い解決策がありますか?

4

1 に答える 1

2

私が知る限り、あなたの選択肢は次のとおりです。

  • サーバーの命名にはより強力な規則を使用して、ベースドメイン名以外の構成が不要になるようにします。それをスクリプトに残します。(つまり、branchX-> branchX-deploy.example.comです。)

  • 提案したように、.gitディレクトリの好きな場所に設定ファイルを置きます。gitが気にするファイル名でない場合は、気付くことはありません。しかし、なぜあなたがこれをしたいのかわかりません。

  • .git/configに入れます。Gitを使用すると、フォームの任意の構成パラメーターを定義できますbranch.<name>.foo。(これが機能なのか見落としなのかはわかりません。私が知る限り、文書化されていません。)あなたの場合、にbranch.master.deploy_server設定されているようなものdevelopment.example.comです。スクリプトはすべてのブランチを通過し、その構成オプションが設定されているかどうかを確認できます。(使用しgit config --getます。)

  • 設定ファイルをリポジトリに配置します。これは、隠すよりもはるかに優れているようです。設定を追跡することもできます。必要に応じて、それらをオーバーライドする方法を提供します。引数として別の構成ファイルを提供し、オプションとして個々のブランチ/サーバーを提供し、インタラクティブなプロンプトを提供します。

個人的には、おそらく最後の1つを行います。トラッキング設定は、デフォルト設定にすぎない場合でも、害を及ぼすことはありません。

于 2010-11-11T16:55:18.387 に答える