diffutils: Generating Smaller Patches

 
 11.4 Generating Smaller Patches
 ===============================
 
 The simplest way to generate a patch is to use 'diff -Naur' (⇒Tips
 for Patch Producers), but you might be able to reduce the size of the
 patch by renaming or removing some files before making the patch.  If
 the older version of the package contains any files that the newer
 version does not, or if any files have been renamed between the two
 versions, make a list of 'rm' and 'mv' commands for the user to execute
 in the old version directory before applying the patch.  Then run those
 commands yourself in the scratch directory.
 
    If there are any files that you don't need to include in the patch
 because they can easily be rebuilt from other files (for example, 'TAGS'
 and output from 'yacc' and 'makeinfo'), exclude them from the patch by
 giving 'diff' the '-x PATTERN' option (⇒Comparing Directories).
 If you want your patch to modify a derived file because your recipients
 lack tools to build it, make sure that the patch for the derived file
 follows any patches for files that it depends on, so that the
 recipients' timestamps will not confuse 'make'.
 
    Now you can create the patch using 'diff -Naur'.  Make sure to
 specify the scratch directory first and the newer directory second.
 
    Add to the top of the patch a note telling the user any 'rm' and 'mv'
 commands to run before applying the patch.  Then you can remove the
 scratch directory.
 
    You can also shrink the patch size by using fewer lines of context,
 but bear in mind that 'patch' typically needs at least two lines for
 proper operation when patches do not exactly match the input files.