From 8b2219bfa2da36e7809588ef723a10483a6e137f Mon Sep 17 00:00:00 2001 From: Francis Rowe Date: Wed, 05 Nov 2014 20:52:36 -0500 Subject: Documentation: *major* cleanup. Cleanup was long overdue. Old structure was messy and inefficient. --- (limited to 'docs/patch.html') diff --git a/docs/patch.html b/docs/patch.html deleted file mode 100644 index 2131951..0000000 --- a/docs/patch.html +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - Libreboot documentation: using diff and patch - - - - - - -
-

Diff and patch

- -
- -

- back to index -

- -
- -

- Apply a patch -

- -

- To apply a patch to a single file, do that in it's directory:
- $ patch < foo.patch -

- -

- Assuming that the patch is distributed in unified format identifying - the file the patch should be applied to, the above will work. Otherwise:
- $ patch foo.txt < bar.patch -

- -

- You can apply a patch to an entire directory, but note the "p level". - What this means is that inside patch files will be the files that you - intend to patch, identified by path names that might be different - when the files ane located on your own computer instead of on the computer - where the patch was created. 'p' level instructs the 'patch' utility to - ignore parts of the path name to identify the files correctly. Usually a - p level of 1 will work, so you would use:
- $ patch -p1 < baz.patch -

- -

- Change to the top level directory before running this. If a patch level - of 1 cannot identify the files to patch, then inspect the patch file for file names. - For example:
- /home/user/do/not/panic/yet.c -

- -

- and you are working in a directory that contains panic/yet.c, use:
- $ patch -p5 < baz.patch -

- -

- You usually count one up for each path separator (forward slash) - removed from the beginning of the path, until you are left with a path - that exists in the current working directory. The count is the p level. -

- -

- Removing a patch using the -R flag
- $ patch -p5 -R < baz.patch -

- -

Back to top of page.

- -
- -

- Create a patch with diff -

- -

- Diff can create a patch for a single file:
- $ diff -u original.c new.c > original.patch -

- -

- For diff'ing a source tree:
- $ cp -R original new -

- -

- Do whatever you want in new/ and then diff it:
- $ diff -rupN original/ new/ > original.patch -

- -

Back to top of page.

- -
- -

- git diff -

- -

- git is something special. -

- -

- Just make whatever changes you want to a git clone and then:
- $ git diff > patch.git -

- -

- Note the git revision that you did this with:
- $ git log -

- -

Back to top of page.

- -
- -

- git apply -

- -

it really is.

- -

- Now to apply that patch in the future, just git clone it again and do - with the git revision you found from above:
- $ git reset --hard REVISIONNUMBER -

- -

- Now put patch.git in the git clone directory and do:
- $ git apply patch.git -

- -

Back to top of page.

- -
- -

- Copyright © 2014 Francis Rowe <info@gluglug.org.uk>
- This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions. - A copy of the license can be found at license.txt. -

- -

- This document is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See license.txt for more information. -

- - - -- cgit v0.9.1