View Single Post
  #2  
Old 10-11-2006, 08:09 AM
eq4me
Hill Giant
 
Join Date: Jul 2006
Posts: 166
Default

Quote:
Originally Posted by John Adams
- Is there a specific source/destination folder structure needed? (ie, /orig-source, /new-source, etc) or will any old name do?
No, not really. Any two different directories will do. I just stick to some meaningful names when I generate a patch to have some info.
Quote:
Originally Posted by John Adams
- What directory must the patch live in? Say, /home/build/patchfile, with the source directories under that?
Where the patchfile is is not relevant you just give the full path to it.

Quote:
Originally Posted by John Adams
- Is "patch" the only command line needed, or should we use --strip or other params to apply these diffs?
Yes, You have to use the "--strip or "-p" option. Basically it does omit subdirectories from the chunk description.
If you dont use that option patch will omit !any! directory structure. See the snap&paste from the manpage below.

so if you have a chunk like:

Code:
--- EQEmu-0.7.0-857/Makefile    2006-10-07 07:22:52.000000000 +0000
+++ EQEmu-0.7.0-857-gcc4.1/Makefile     2006-10-10 08:55:04.084514500 +0000
[...]
an

Code:
cd [EQEmu source dir to patch]
patch -p1 < [path/patch file name]
would strip the leading EQEmu-0.7.0-857 and EQEmu-0.7.0-857-gcc4.1 from the chunk description. So patch would try to find ./Makefile and patch it. Provided you are in the top EQEmu source dir that is exactly what you want.

Edit: From the manpage

Code:
       -pnum  or  --strip=num
          Strip the smallest prefix containing num leading slashes  from  each
          file  name found in the patch file.  A sequence of one or more adja-
          cent slashes is counted as a single slash.  This controls  how  file
          names  found  in  the  patch file are treated, in case you keep your
          files in a different directory than the  person  who  sent  out  the
          patch.  For example, supposing the file name in the patch file was

             /u/howard/src/blurfl/blurfl.c

          setting -p0 gives the entire file name unmodified, -p1 gives

             u/howard/src/blurfl/blurfl.c

          without the leading slash, -p4 gives

             blurfl/blurfl.c

          and  not specifying -p at all just gives you blurfl.c.  Whatever you
          end up with is looked for either in the current  directory,  or  the
          directory specified by the -d option.

Last edited by eq4me; 10-11-2006 at 04:27 PM..
Reply With Quote