これはパッチを作成する良い方法でしょうか?

これはパッチを作成する良い方法でしょうか?

特定のブランチから公式リリースと比較するパッチを作成したいと思いますgcc。安定リリースから tarball を解凍すると、パッチを適用して、その特定のブランチにあったものと同等のものを取得できます。

パッチを作成する必要があるのは初めてなので、これを行うのは初めてであり、非常に重要なソフトウェアについて話しているので、オプションと解析を正しく行うことが主な懸念事項です。

diff -crB GccStable GccGit > /tmp/fromStabletoBranch.patch

これは十分であり、最善の方法でしょうか?

答え1

はい、これはパッチを作成する良い方法です。

要するに:

  1. 単一ファイルのパッチを作成するには、コマンドは次のようになります。

    diff -Naru file_original file_updated > file.patch

    どこ

    • -N: 存在しないファイルを空として扱う
    • -a: すべてのファイルをテキストとして扱う
    • -r: 見つかったサブディレクトリを再帰的に比較する
    • -u: 統合コンテキストのNUM行(デフォルトは3行)を出力します
  2. ディレクトリ全体のパッチを作成するには:

    diff -crB dir_original dir_updated > dfile.patch

    どこ

    • -c: コピーされたコンテキストのNUM行(デフォルトは3行)を出力します
    • -r: サブディレクトリを再帰的に比較する
    • -B: 行がすべて空白の変更を無視する

結局このパッチを適用するには

patch -p1 --dry-run < dfile.patch

ここで、スイッチはp、ファイルが正しく識別されるように、パス プレフィックスを削除するように patch に指示します。ほとんどの場合、 になります1

--dry-run画面に表示された結果に満足したら削除します。

答え2

最新の git チェックインを何らかの安定バージョンと比較したい場合は、git diff the-stable-versionリポジトリで に移動するだけです (どのタグがそれを説明するのか、おそらく正確なバージョン番号か何らかのバリエーションかを把握する必要があります)。 はgitプロジェクトの完全な履歴を保持します (通常、一部だけを取得する方法があります)。 が別の開発ブランチにあるかどうかは関係ありませんthe-stable-version(つまり、開発が分岐し、安定ブランチに土壇場で修正が加えられた場合)。

関連情報