パッチを作る良い方法ですか?

パッチを作る良い方法ですか?

特定のブランチからパッチを作成し、それを公式バージョンと比較したいと思いますgcc。これにより、安定版でタールボールを解凍するときにパッチを適用し、その特定のブランチと同じコンテンツを取得できます。

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

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ファイルを正しく識別できるようにパッチにパスプレフィックスを削除するように指示します。これはほとんどの場合に当てはまります1

--dry-run画面に印刷された結果が満足な場合は、削除してください。

答え2

最新のgitチェックインをいくつかの安定したバージョンと比較するには、git diff the-stable-versionリポジトリに移動します(これを説明するタグ、正しいバージョン番号、またはいくつかのバリエーションを見つける必要があります)。gitプロジェクトの完全な記録を維持します(しばしば一部をインポートする方法もあります)。他の開発ブランチにあるかどうかは重要ではありませんthe-stable-version(たとえば、開発が分岐して安定ブランチに最終的な修正があります)。

関連情報