Navaneeth Sen
Navaneeth Sen

Reputation: 6466

Difference between patch and diff files

Could somebody explain me the difference between a .diff file and .patch file.

Upvotes: 52

Views: 15501

Answers (4)

Sérgio
Sérgio

Reputation: 7249

patch is a unified diff (-u), if you do a: diff -u oldfile newfile, with patch command line, you can apply the differences to oldfile to become newfile somewhere else.

Upvotes: 10

cweiske
cweiske

Reputation: 31078

For me .diff files contain file differences only (added/deleted lines) that are produced by "git diff"

.patch files for me also contain the author, date and patch/commit message, as generated by git show.


Github allows to add .patch and .diff to pull request URLs. The .diff contains only the file changes, while the .patch is a serialization of all commits in that PR, with the commit message and file content diff in each.

Upvotes: 6

Cascabel
Cascabel

Reputation: 496772

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.

Upvotes: 28

khachik
khachik

Reputation: 28693

There are no differences. diff utility produces a patch file which is applied using patch.

Upvotes: 7

Related Questions