Re: Reading and applying patches
- From: Cameron Simpson <cs@xxxxxxxxxx>
- Date: Tue, 5 Sep 2006 18:12:01 +1000
On 05Sep2006 01:44, Todd Zullinger <tmz@xxxxxxxxx> wrote:
| Chong Yu Meng wrote:
| > --- mlrate/mlrate.c 2003-01-27 10:31:31.000000000 +0100
| > +++ mlrate.new/mlrate.c 2004-11-22 12:37:52.086783325 +0100
| > @@ -25,6 +25,8 @@
| > #include <string.h>
| > ... and continues for a bit longer
| >
| > I assume that I should copy and paste the text into a separate file
| > and save it. But how do I apply the patch to the source file, which
| > is mlrate.c?
|
| You assume correctly.
It's worth mentioning that patch is pretty forgiving. You can usually
save the entire message to a file; patch is happy to skip past the leading
text up to the actual patch data (the output of a diff command, btw).
[...]
| > Also, how do I read the file? From some patch files I have come
| > across, they have "pluses" and "minuses" and other notation. What do
| > they mean?
|
| Lines beginning with a plus are being added by the patch, lines with a
| minus are being removed. The lines that start with either 3 minuses
| or plusses indicate the path of file that's being patched.
Also "!" prefixes lines in both parts that replace each other; the "+"
and "-" prefixes are where lines are removes or added respectively
without any new (or old, respectively) text.
Patch understands output from diff(1), which comes in three basic flavours:
- original diff (rarely used) which is actually a set of ed(1)
commands to turn the old files into the new file.
- context diff, as produced by "diff -c", which is more human readable,
surrounding the changed lines with some unchanged lines from the files.
This also has the advantage or permitting patch to cope a bit with
mismatches. For example, if you have a diff between versions 1.21
and 1.22, and you're trying to apply it to 1.20; if the files are
similar enough patch can use the context lines to guess where the
patch should go.
- unified diff, as produced by "diff -U", which is a more compact form
of context diff, and just as human readable, if not more so.
Make yourself a text file (eg a copy of this message). Then copy it and
modify the copy in various ways. Then compare the two using "diff -U".
A larger patch will normally be made from two complete source trees (the
old and the new) by running diff with the -r option (recursive) which
produces diffs for all the changes files.
For program version change patches, often the "old" tree will be inside
some source control system instead of being a real distinct directory
tree. Commands like "cvs diff" will generate diff output, comparing your
working area against the version inside the system.
Cheers,
--
Cameron Simpson <cs@xxxxxxxxxx> DoD#743
http://www.cskk.ezoshosting.com/cs/
[He] is the only man I know who would regard a naked, beautiful woman staring
deep into his eyes as an uncomplaining audience for his views on the latest
version of the twm window manager. - igb@xxxxxxxxxxxxx (Ian G Batten)
--
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
- References:
- Re: Reading and applying patches
- From: Todd Zullinger
- Re: Reading and applying patches
- Prev by Date: Re: FC5 and BIND 9
- Next by Date: FC5 - Eclipse with Sun Java
- Previous by thread: Re: Reading and applying patches
- Next by thread: Re: Reading and applying patches
- Index(es):
Relevant Pages
|
|