私の仕事では、一部の製品にオープン ソース ソフトウェアを使用し、メインライン プロジェクトが提供するものに加えていくつかの追加機能を開発しました。オープンソース プロジェクトは活発に開発されており、これらの変更の一部をメインラインのオープンソース プロジェクトに戻すつもりです。
ただし、当社の製品に必要な他の機能もいくつか追加しました。これらの機能にはセキュリティへの影響があり、私の使用例では完全に受け入れられますが、一般的には受け入れられません。したがって、オープンソース プロジェクトはこれらの機能をメインライン開発の一部として受け入れることは決してないため、これらの機能を自分で保守する必要があります。
メインライン開発の新しいリリースを時折取得できるようにしたいのですが、これには、ローカルで維持されている機能をメインラインに頻繁に「再パッチ」する必要があるようです。
最小限のオーバーヘッドでメインラインとは別の開発ラインとして必要な機能を維持するにはどうすればよいですか? メインライン プロジェクトで何かが変更されるたびに、ローカルで維持されている機能を書き直す必要はありませんが、パッチを提供してプルし続けたいので、プロジェクト全体を「フォーク」するのは避けたいと思います。メインラインからの更新。
メインライン プロジェクトの将来のリリースに向けて、別の機能 (これらのパッチを適用しようとしている場所) を実装する独自の「パッチ」ファイルのセットを維持するのが最善でしょうか? (注: オープンソース プロジェクトでは、これに役立つ git 用のツールがあれば、リビジョン管理に git を使用します。)