パッチを生成する最も簡単な方法は「diff -Naur」を使うことです(パッチ作成者へのヒント参照)。ただし、作成前に一部のファイルを改名・削除すれば、パッチを小さくできることがあります。パッケージの旧版に新版にはないファイルがある場合や、両バージョン間で改名されたファイルがある場合は、利用者がパッチ適用前に旧版のディレクトリで実行する rm と mv のコマンド一覧を作ります。その後、自分でも作業用ディレクトリでそれらを実行します。
他のファイルから容易に再生成できるためパッチに含める必要がないファイル(たとえば TAGS や yacc・makeinfo の出力)があれば、diff に -x
pattern オプションを指定して除外します(ディレクトリを比較する参照)。受取人が生成ツールを持たないため派生ファイルを変更するパッチを含める場合は、依存元のファイルのパッチより後にそのパッチを置き、受取人側のタイムスタンプが make を混乱させないようにします。
これで「diff -Naur」を使ってパッチを作れます。必ず作業用ディレクトリを先、新版のディレクトリを後に指定してください。
パッチの先頭に、適用前に実行すべき rm と mv コマンドを知らせる注記を加えます。その後、作業用ディレクトリを削除できます。
コンテキスト行を減らしてもパッチを小さくできます。ただし、パッチが入力ファイルと厳密に一致しない場合、patch が正常に動作するには通常少なくとも2行が必要なことを覚えておいてください。