Compare differences between 2 text files
| -y | side by side compare; „|“ indicates differences |
| -s | Report when two files are the same |
| -r | Recursively compare any subdirectories found |
| -w | Ignore changes in white space |
| -N | treat absent files as empty |
| -a | treat all files as text |
| -u | output NUM (default 3) lines of unified context |
Use cmp for binary files.
Initital situation: You have the source tree of the original project and your improved version of the project:
. |-- project.org/ `-- project.new/
Create the patch file with:
diff -Naur project.org project.new > improvement.patch
If your editor is set to change the amount of whitespace (which may be useful, eg. when it automatically deletes trailing spaces) in project.new/ than you shold ignore this in the diff command in order not to confuse the receiver of the patch:
diff -Naurw project.org project.new > improvement.patch
Initital situation: You have the source tree of the project to be patched and the patch file:
. |-- project.toBePatched/ `-- improvement.patch
Patch the project with:
cd project.toBePatched patch -p1 < ../improvement.patch
You can test also try out first what the patch actually would do withou changing anything:
patch -p1 --dry-run < ../improvement.patch
More info at http://www.kegel.com/academy/opensource.html#patches