quilt-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Quilt-dev] [BUG] 'quilt diff' shows text from wrong file - more inf


From: Andreas Gruenbacher
Subject: Re: [Quilt-dev] [BUG] 'quilt diff' shows text from wrong file - more info
Date: Tue, 3 Oct 2006 22:06:39 +0200
User-agent: KMail/1.9.1

Hello,

On Tuesday 03 October 2006 21:37, Chris Shoemaker wrote:
> On Tue, Oct 03, 2006 at 02:13:14PM -0400, Chris Shoemaker wrote:
> > First off, I'm a long-time happy quilt user.  Today, I saw something
> > strange enough that I thought I should report it.  Sorry I don't have
> > an actual reproduction script.  If it's absolutely required, let me
> > know.
> >
> > Here's what happened:
> >
> > [These first few steps may be unimportant, but I include them just in
> > case.]
> >
> > I'm in the middle of my patch stack.  The next patch, call it
> > 'sed.diff', is the result of a sed on my tree.
> >
> > $ quilt push
> >
> > [ The push fails because I've made changes to eariler patches.
> > Instead of forcing it and fixing it up, I'm just going to re-run the
> > saved sed script. ]
> >
> > $ quilt delete sed.diff
> >
> > [ Perhaps I should have used -r here, but I never do. ]
> >
> > $ quilt new sed.diff
> >
> > $ quilt add `cat saved-list-of-files`
> >
> > $ sed -f script.sed -i `quilt files`
> >
> > Now I want to see what I've done before I `quilt ref`.
> >
> > $ quilt diff -z |less
> >
> > Here's where it gets weird, and I had to triple-check that I was
> > actually seeing what I was seeing.

The above diff is between the old version of the patch (which is still in 
patches/sed.diff after the delete, and as far as the original patch applies) 
and the working tree. What you really want to do here is a simple `quilt 
diff'.

> > The diff looked just as I expected, with the right files and hunks and
> > line numbers, except for one important difference.
> >
> > Most of the changed lines from the original version (those starting
> > with '-') were not the actual text from the original version, but the
> > text from the changed version.
> >
> > IOW, if my sed script had "s/QQQ/XXX/g" in it, I saw lines like:
> >
> > @@ -554,7 +554,7 @@
> >
> >
> >
> > -  foo XXX bar
> > +  foo XXX bar
> >
> >
> >
> >
> >
> > And this wasn't just one hunk, but almost every hunk was in the
> > 'correct' place, but showed identical lines.

Probably the old and the new versions of the files have some whitespace 
changes --- otherwise, diff wouldn't generate such hunks.

Could you please check very carefully?

> > A little baffled, I decided to `quilt ref` anyway.
> >
> > Afterward, `quilt diff |less` showed the correct diffs.
> >
> > Can anyone explain this?  It seems like a bug to me.
>
> More info:
> $ quilt --version
> 0.45
>
>
> I can easily repeat this.  Also, this is probably a BIG HINT:
>
> When I get the weird `quilt diff -z`, there are 2 of the 20 files for
> which the diff shows the correct difference.  Those two files are the
> same two files that failed to apply during the first `quilt push`.
> Incidentally, I use QUILT_PUSH_ARGS="--leave-rejects" in my .quiltrc
> file.

In case you still run into problems, please send a test case. (You can use the 
attached test case as a starting point; run with the test/run script in the 
quilt tarball.)

Andreas

Attachment: foo.test
Description: Text Data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]