特定のブランチからパッチを作成し、それを公式バージョンと比較したいと思いますgcc
。これにより、安定版でタールボールを解凍するときにパッチを適用し、その特定のブランチと同じコンテンツを取得できます。
パッチを作成する必要があるのは今回が初めてなので、これを行うことが初めてであり、非常に重要なソフトウェアについて話しているので、主な関心事は正しいオプションを取得して解析することです。
diff -crB GccStable GccGit > /tmp/fromStabletoBranch.patch
これは十分で最善のアプローチですか?
答え1
はい、これはパッチを生成する良い方法です。
簡単に言うと:
単一ファイルのパッチを生成するには、コマンドは次のようになります。
diff -Naru file_original file_updated > file.patch
どこ
-N
: 存在しないファイルを空のファイルとして扱う-a
: すべてのファイルをテキストとして扱う-r
:見つかったサブディレクトリを再帰的に比較します。-u
:統合コンテキストNUM(デフォルト3)行出力
ディレクトリ全体のパッチを作成します。
diff -crB dir_original dir_updated > dfile.patch
どこ
-c
:コピーしたコンテキストのNUM(デフォルト3)行を出力します。-r
:すべてのサブディレクトリを再帰的に比較します。-B
:行がすべて空の変更を無視します。
結局のところ、このパッチを適用すると機能します。
patch -p1 --dry-run < dfile.patch
スイッチは、p
ファイルを正しく識別できるようにパッチにパスプレフィックスを削除するように指示します。これはほとんどの場合に当てはまります1
。
--dry-run
画面に印刷された結果が満足な場合は、削除してください。
答え2
最新のgitチェックインをいくつかの安定したバージョンと比較するには、git diff the-stable-version
リポジトリに移動します(これを説明するタグ、正しいバージョン番号、またはいくつかのバリエーションを見つける必要があります)。git
プロジェクトの完全な記録を維持します(しばしば一部をインポートする方法もあります)。他の開発ブランチにあるかどうかは重要ではありませんthe-stable-version
(たとえば、開発が分岐して安定ブランチに最終的な修正があります)。