Could somebody explain me the difference between a .diff file and .patch file.
patch is a unified diff (-u), if you you do a:
diff -u oldfile newfile
,
with patch command line, you can apply the differences to oldfile to become newfile somewhere else.
There are no differences. diff
utility produces a patch file which is applied using patch
.
What matters is the content of the file, not the extension. Both of those extensions imply that some sort of diff utility (diff
, git diff
, git format-patch
, svn diff
) produced the output.
Many diff utilities produce output which can be applied by the patch
command. You will frequently need to use the -d
and -p
options to patch
in order to get the paths matched up right (strip prefix, name target directory). If you see one of those extensions on a file distributed online, it's almost certainly an indication it's compatible with patch
.
Git's diff output is compatible with patch, but I believe svn's is not. Of course, plain patches generated by git diff
are probably best applied by git apply
, and patches generated by git format-patch
are designed for use with git-am
.