0

いくつかのサブモジュールを持つスーパープロジェクトがありますが、これはうまく機能しています。

しかし、この特定のプロジェクトのためにサブモジュールの1つを変更する必要があるが、可能であれば元のサブモジュールから変更を取り込むことができるようにしたいと考えています。

これらの変更は明らかにスーパープロジェクトによって追跡され、変更を加えても元のサブモジュールにプッシュされないようにする必要があります。

これをどのように管理できますか?

この特定のプロジェクトのサブモジュールにブランチを作成できると思いますが、同じサブモジュールを使用する100以上のプロジェクトでは厄介になる可能性があります。

4

1 に答える 1

0

あなたのプロジェクト/サブプロジェクトの詳細はわかりませんので、漠然とした一般的な見解のみを示します。

あなたの問題は特にgitにあるようではなく、プロジェクト/サブプロジェクトの依存関係の管理にあるようです。

最初の警告:あなたが説明していることから、これらのプロジェクトの1つだけのために100以上のプロジェクトによって使用されるサブモジュールの動作を微調整したいと思います。本当にサブモジュールを変更することになった場合(たとえば、他のプロジェクトでも使用されているコードを変更する場合)、テストの地獄に1つの新しい円を入力することになります。サブモジュールがどのように機能するかを確認し、サブモジュールを実際に変更する必要があるのか​​、それとも1つのプロジェクトに対してのみ微調整する必要があるのか​​を判断します。

必要な変更が1つのプロジェクトにのみ固有である場合は、これらの変更をプロジェクトに限定して、サブモジュールを変更しないようにしてください。

考えられる1つの方法は、その呼び出しを特定のプロジェクトでラップすることです。たとえば、次の呼び出しを置き換えます。

submodule::do_stuff()

function adjust_behaviour(){
    result = submodule::do_stuff();
    tweak_for_my_project(result);
    return result;
}

サブモジュールの動作がパラメーターに応じて実際に変化する必要がある場合は、それを使用するために提供されるインターフェースにこれを表示する必要があります。

例:サブモジュールに関数が含まれていてcomputeThis()、計算が実際にパラメーターに依存しているweather場合は、それに応じて動作するように関数を変更することを検討する必要があります:computeThis(weather)

または、sumoduleが構成ファイルをロードでき、各プロジェクトが独自のファイルを提供する必要がある場合もあります。

于 2012-09-21T09:20:50.570 に答える