Patch files

From Exterior Memory
Jump to: navigation, search
This article was originally published at Richard Black. I keep it here for personal reference.

How to create and use a patch in Linux

Creating a Patch File

diff -Naur olddir newdir > new-patch


diff -Naur oldfile newfile >new-patch

Using the Patch Command

patch -p0 <new-patch
patch -p1 <new-patch

Which one of the above patch commands you use depends on your current working directory. Other Methods for calling the patch command - using standard input of patch:

Levels in the Patch Command (-p0 or -p1?)

The -p option will optionally strip off directory levels from the patchfile. For Ex: if you have a patchfile with a header as such:

--- old/modules/pcitable	Mon Sep 27 11:03:56 1999
+++ new/modules/pcitable	Tue Dec 19 20:05:41 2000

Using a -p0 will expect, from your current working directory, to find a subdirectory called "new", then "modules" below that, then the "pcitable" file below that.

Using a -p1 will strip off the 1st level from the path and will expect to find (from your current working directory) a directory called "modules", then a file called "pcitable". Patch will ignore the "new" directory mentioned in the header of the patchfile.