web-dev-qa-db-ja.com

小さな修正や大きな変更を追加しながら、アップストリームの変更に遅れずについていく

多くの場合、いくつかの小さな修正を適用する(環境で実行するため)か、ソフトウェアの一部を(ニーズに合わせて)外部からソフトウェアに変更する必要があります。しかし、これは明らかに、私の修正に関連するものを何も変更しない場合でも、前述のソフトウェアの更新に問題を引き起こします。ソフトウェアが特定の種類のプラグインの統合を提供する場合は簡単ですが、多くの場合、そうではありません。

それに関する理想的なワークフローは何でしょうか?ほとんどのプロジェクトは、私が外部から取得したgitreposです。簡単に更新できるように、変更をどのように適用すればよいですか?外部の変更は私自身の変更よりもはるかに頻繁で大きいと想定できるため、それぞれを確認することは解決策にはなりません。

1
neo

最も簡単な方法は、gitリポジトリにローカルブランチを作成し、リモートの変更が到着したらブランチにマージすることです。ソフトウェアを「アップストリームプロジェクトの私の修正バージョン」と考えるなら、これは理にかなっているはずです。

ただし、別のオプションはキルトを使用することです( 要約 ; 公式ページ )。これは、外部ソフトウェア上でパッチのセットを管理する方法です。これは、ソフトウェアを「アップストリームプロジェクトと私の変更」と考え、アップストリームプロジェクトが変更されるたびに、新しいものを取得して変更を適用する(または変更を変更してきれいに適用する)場合に意味があります。

1
Tom Panning