Date: Thu, 18 Oct 2001 08:10:44 +0200 (CEST) From: Micke Josefsson <mj@isy.liu.se> To: cjclark@alum.mit.edu Cc: freebsd-questions@FreeBSD.ORG Subject: Re: Recursive diff? How? Message-ID: <XFMail.20011018081044.mj@isy.liu.se> In-Reply-To: <20011017150223.A373@blossom.cjclark.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 17-Oct-2001 Crist J. Clark wrote:
> On Wed, Oct 17, 2001 at 10:58:59AM +0200, Micke Josefsson wrote:
>>
>> On 17-Oct-2001 Crist J. Clark wrote:
>> > On Wed, Oct 17, 2001 at 07:57:24AM +0200, Micke Josefsson wrote:
>> >> In my attempt to port uClinux development environment to FreeBSD I have
>> >> edited
>> >> many files down the uClinux source directory. Is there anyway of doing a
>> >> recursive diff so that it would also be easy to patch a newly installed
>> >> source?
>> >>
>> >> diff -r seems ok, but when I patch with the result it wants me to specify
>> >> the
>> >> exact filenames. Is there a better way? CVS?
>> >
>> > The 'diff -r' should handle this fine. Are you running the 'diff -r'
>> > in the same relative location to where you are running the 'patch'
>> > command or using the -p option correctly? Are your running the diff(1)
>> > command someplace where you have different directory name in between
>> > the pwd and the source files than on the machine you run patch(1)?
>>
>>
>> Thanks for bothering with this but I just can't seem to get it right.
>>
>> Lets get down to cases (I've tried every combination I can think of:).
>>
>> in my ~/tmp I have two source trees. One original and one modified:
>>
>> src src.orig
>>
>> I make a diff as per man page of diff:
>>
>> diff -crN src.orig src > src.diff
>>
>> How do I apply that src.diff onto the 'real' original sources at
>> /opt/uClinux/src?
>>
>> A simple 'cd /opt/uClinux; patch < src.diff' wont do it. Nor any combination
>> of
>> -p[1-7].
>>
>>
>>
>> I have also tried going down into /opt/uClinux/src etc to no avail.
>
> I would expect if the 'src.orig' and 'src' trees are structured like
> '/opt/uClinux/src', that,
>
> $ cd /opt/uClinux
> $ patch < src.diff
>
> Should work.
That is exactly how I read the man-page too. I got it right yesterday after some
more experimenting. Apparently the route I described above DID work only I was
too confused at the time to notice it:(
The original situation arose from doing as in the snippet below. When I made the
diff with -crN however it actually did work. I still do not understand why diff
-r barfs.
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
(> diff -r src.orig src >src.diff)
lagrange# cd /opt/uClinux/
lagrange# patch < /home/mj/tmp/TMP/src.diff
Hmm... Looks like a normal diff to me...
The text leading up to this was:
--------------------------
|diff -r src.orig/Makefile src/Makefile
--------------------------
File to patch:
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
I am terribly sorry to have taken up your time with this. I'll RTFM better next
time...
/Micke
> What does the prompting from patch(1) look like? What does the top of
> one of the diff's look like; the first two lines with the pathnames?
diff -r src.orig/Makefile src/Makefile
16c16
:
:
and
diff -crN src.orig/Makefile src/Makefile
*** src.orig/Makefile Thu Oct 18 07:48:19 2001
--- src/Makefile Thu Oct 18 07:48:40 2001
:
:
:
----------------------------------
Michael Josefsson, MSEE
mj@isy.liu.se
This message was sent by XFMail
running on FreeBSD 4.4-STABLE
----------------------------------
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?XFMail.20011018081044.mj>
