0

すべてが同様のサイトを持つ少数のクライアントがあり、現在、それらはすべて、システム レベルのファイルを上書きする独自のアプリケーション フォルダーで構成されています。変更の劇的な性質のため、オーバーライドを行うことはもはや理想的なソリューションのようには見えません。代わりに、より「ボイラープレート」タイプのソリューションに移行したいと考えています。私が念頭に置いていたワークフローは次のとおりです。

  1. 私たちの会社名にブランド化されるマスター「ボイラープレート」、つまり「完全にロードされた」パッケージ、すべての可能な機能などがあります。

  2. クライアントごとに、クライアント固有の変更 (異なるビュー、画像、モデル、構成など) をすべて含む、このボイラープレートの新しいクローンを作成します。

  3. 新しい機能を追加したり、バグを修正したり、マスター ボイラープレートのパフォーマンスを改善したりするたびに、これらの変更を各クライアントにプッシュ/プルしたいと考えています。注: それぞれが独自のプッシュ/プルを必要とするため、必要に応じてすべてのクライアントを一度に更新する必要がありません。これにより、潜在的な問題を一度に 1 人のクライアントに対処することができます。安全なプッシュが必要な場合は、バッチ プッシュ/プルを実行するスクリプトを作成できます。

私の懸念は、クライアント リポジトリの変更が任意のファイルに含まれている可能性があるため、クライアント クローンへのプッシュ/プルのたびに毎回競合に対処する必要があることです。

この状況に対処する最善の方法について、人々がどう考えているか知りたいと思っていました。私の git に関する知識は限られているため、ブランチは悪い考えであり、各クローンに必要な変更の性質上、サブモジュールが可能になるとは思えません。私は git rerere について少し読んだことがありますが、これが効果的であるために競合が十分に予測可能かどうかはわかりません。

アドバイスをお寄せいただきありがとうございます。svn をやめて、このタイプのセットアップに切り替えることに本当に興奮しています。これにより、生産性と開発時間が大幅に改善されると思います。

4

1 に答える 1

0

各ベンダーの機能をオン/オフするコード/構成を分離します。独自のカスタマイズを使用して、ベンダーごとにブランチを持つことができるようになりました。重要なのは、構成なしで有効なデフォルト値を指定することです。設定を追加すると、デフォルトが上書きされます。

このようにして、個々のベンダー ブランチを更新できます。構成を変更しないため、カスタム構成がある場合でも、改善を「継承」します。

git がその構成で行うことをほとんどやりたいと思っています。任意の構成に対して、システム、グローバル、およびローカル設定があります。

于 2012-04-04T21:15:04.420 に答える