Node:Generating Smaller Patches, Previous:Avoiding Common Mistakes, Up:Making Patches
The simplest way to generate a patch is to use diff -Naur
(see 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 (see 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' time
stamps 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.