Diff and patch

From Noah.org
Revision as of 11:50, 29 May 2007 by Root (talk | contribs)
Jump to navigationJump to search

If you don't have svn access to a project and want to submit a manual patch, the following notes should help. You made changes to many files in a project and you want to submit a patch to the maintainer of the project. First, find out if they want Context or Unified diffs. That will set the -c or -u option for diff. I usually go with -c when in doubt.

diff -r -c -x".svn" -x"*.jpg" -x"*.a" -x"*.so" -x"*.o" -x"*.pyc" -x"CVS" \
"/home/user/project-ORIGINAL" "/home/user/project-NEWER" > changes.patch

This will generate a patch file that you can mail to the project maintainer. They will then apply the patch as follows:

cd project-ORIGINAL
patch < changes.patch

You can add many more -x options to exclude patterns of files that you do not want included in the patch.