You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Garrett Rooney <ro...@electricjellyfish.net> on 2002/05/07 00:35:37 UTC

svn diff problem

i've seen this behavior mentioned on the list before, and i never got
a satisfactory answer to it.

running 'svn diff -r 1878:1879 packages/freebsd/subversion' in the top
level of a checked out svn tree produces a diff that includes a diff
of the html that mod_dav_svn spits out for the directory
packages/freebsd/subversion.  this can't possibly be what we want the
user to see in this situation...

if you leave off the 'packages/freebsd/subversion' argument, the
output is as i would expect.

-garrett

-- 
garrett rooney                    Remember, any design flaw you're 
rooneg@electricjellyfish.net      sufficiently snide about becomes  
http://electricjellyfish.net/     a feature.       -- Dan Sugalski

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn diff problem

Posted by Ben Collins-Sussman <su...@collab.net>.
Garrett Rooney <ro...@electricjellyfish.net> writes:

> On Mon, May 06, 2002 at 09:06:21PM -0500, Ben Collins-Sussman wrote:
> > Garrett Rooney <ro...@electricjellyfish.net> writes:
> >  
> > > +<html><head><title>/trunk/packages/freebsd/subversion</title></head>
> > > +<body>
> > > + <h2>/trunk/packages/freebsd/subversion</h2>
> > > + <ul>
> > > +  <li><a href="../">..</a></li>
> > > +  <li><a href="Makefile/">Makefile/</a></li>
> > > +  <li><a href="distinfo/">distinfo/</a></li>
> > > +  <li><a href="files/">files/</a></li>
> > > +  <li><a href="pkg-comment/">pkg-comment/</a></li>
> > > +  <li><a href="pkg-descr/">pkg-descr/</a></li>
> > > +  <li><a href="pkg-plist/">pkg-plist/</a></li>
> > > + </ul>
> > > + <hr noshade><em>Powered by <a href="http://subversion.tigris.org/">Subversion</a></em>
> > > +</body></html>
> > 
> > Holy crap!  Sorry for misunderstanding you!
> 
> good to see i'm not insane ;-)
> 

Aha!  I think this is a different manifestation of the *same* bug that
we were seeing with 'svn merge -rX:Y PATH' earlier today.  The one I
tried to fix.

That html above is what you'd see in the body of a GET on a
directory.  Not a memory leak at all.

Here are the clues:

Both of these commands work fine, with an implicit dot target:

   'svn merge -rX:Y'
   'svn diff  -rX:Y'

But these commands both cause wacky problems:

   'svn merge -rX:Y WCPATH'  ==> adds local mods to '.' instead of wcpath
   'svn diff  -rX:Y WCPATH'  ==> does a direct GET on WCPATH's URL

As it turns out, the same repos-diff editor is being used in these
situations.  I bet these are the same bug.  And I bet it's still my
fault.  :-)

   

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn diff problem

Posted by Garrett Rooney <ro...@electricjellyfish.net>.
On Mon, May 06, 2002 at 09:06:21PM -0500, Ben Collins-Sussman wrote:
> Garrett Rooney <ro...@electricjellyfish.net> writes:
>  
> > +<html><head><title>/trunk/packages/freebsd/subversion</title></head>
> > +<body>
> > + <h2>/trunk/packages/freebsd/subversion</h2>
> > + <ul>
> > +  <li><a href="../">..</a></li>
> > +  <li><a href="Makefile/">Makefile/</a></li>
> > +  <li><a href="distinfo/">distinfo/</a></li>
> > +  <li><a href="files/">files/</a></li>
> > +  <li><a href="pkg-comment/">pkg-comment/</a></li>
> > +  <li><a href="pkg-descr/">pkg-descr/</a></li>
> > +  <li><a href="pkg-plist/">pkg-plist/</a></li>
> > + </ul>
> > + <hr noshade><em>Powered by <a href="http://subversion.tigris.org/">Subversion</a></em>
> > +</body></html>
> 
> Holy crap!  Sorry for misunderstanding you!

good to see i'm not insane ;-)

> I didn't notice this junk fly by in my diff, but yeah, there it is.
> Where did that crap come from?  This looks like a biiiiiiig bug, or some
> kind of memory overflow, even.

i had thought it was just doing a diff against the output of
mod_dav_svn for the directory for some reason, but now that i look
again, the current example i see has the html diff coming out right at
the end of the diff from another file, without any header (filenames
and so forth) before it, which lends credence to the memory overflow
theory.

-garrett 

-- 
garrett rooney                    Remember, any design flaw you're 
rooneg@electricjellyfish.net      sufficiently snide about becomes  
http://electricjellyfish.net/     a feature.       -- Dan Sugalski

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn diff problem

Posted by Eric Gillespie <ep...@pretzelnet.org>.
Ben Collins-Sussman <su...@collab.net> writes:

> I didn't notice this junk fly by in my diff, but yeah, there it is.
> Where did that crap come from?  This looks like a biiiiiiig bug, or some
> kind of memory overflow, even.

I reported this bug (along with three others) in message
20020428014538.A1CD4A2C8@romulus.pretzelnet.org (subject '4 bugs
in svn diff (IssueZilla gives me Internal Server Error)').

--  
Eric Gillespie <*> epg@pretzelnet.org

Conformity is a sin.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn diff problem

Posted by Ben Collins-Sussman <su...@collab.net>.
Garrett Rooney <ro...@electricjellyfish.net> writes:
 
> +<html><head><title>/trunk/packages/freebsd/subversion</title></head>
> +<body>
> + <h2>/trunk/packages/freebsd/subversion</h2>
> + <ul>
> +  <li><a href="../">..</a></li>
> +  <li><a href="Makefile/">Makefile/</a></li>
> +  <li><a href="distinfo/">distinfo/</a></li>
> +  <li><a href="files/">files/</a></li>
> +  <li><a href="pkg-comment/">pkg-comment/</a></li>
> +  <li><a href="pkg-descr/">pkg-descr/</a></li>
> +  <li><a href="pkg-plist/">pkg-plist/</a></li>
> + </ul>
> + <hr noshade><em>Powered by <a href="http://subversion.tigris.org/">Subversion</a></em>
> +</body></html>

Holy crap!  Sorry for misunderstanding you!

I didn't notice this junk fly by in my diff, but yeah, there it is.
Where did that crap come from?  This looks like a biiiiiiig bug, or some
kind of memory overflow, even.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn diff problem

Posted by Garrett Rooney <ro...@electricjellyfish.net>.
On Mon, May 06, 2002 at 08:57:05PM -0500, Ben Collins-Sussman wrote:
> Garrett Rooney <ro...@electricjellyfish.net> writes:
> 
> > i've seen this behavior mentioned on the list before, and i never got
> > a satisfactory answer to it.
> > 
> > running 'svn diff -r 1878:1879 packages/freebsd/subversion' in the top
> > level of a checked out svn tree produces a diff that includes a diff
> > of the html that mod_dav_svn spits out for the directory
> > packages/freebsd/subversion.  this can't possibly be what we want the
> > user to see in this situation...
> > 
> > if you leave off the 'packages/freebsd/subversion' argument, the
> > output is as i would expect.
> 
> I'm not sure what the issue is here.
> 
> In the first example, you're running
> 
>      svn diff -r X:Y foo/bar/baz
> 
> ...which means, "do a diff between foo/bar/baz and itself at two
> different revisions".  Thus I expect all paths to be relative to baz.
> After all, the server is comparing two versions of baz, and driving an
> editor to describe the differences.  Thus 'baz' is the root of the
> tree-delta.
> 
> In the second case, you're running
> 
>      svn diff -r X:Y
> 
> ...which means, "do a diff between '.' and itself and at two different
> revisions."  If '.' happens to be the top of your tree, then you're
> going to see *all* diffs within /trunk.  (Of course, in your
> particular example, all changes in commit Y happened to be within baz
> anyway)
> 
> So I turn the question around, what do you expect to see?

i'd expect to see pretty much what i'm seeing now, except for this
part:

+<html><head><title>/trunk/packages/freebsd/subversion</title></head>
+<body>
+ <h2>/trunk/packages/freebsd/subversion</h2>
+ <ul>
+  <li><a href="../">..</a></li>
+  <li><a href="Makefile/">Makefile/</a></li>
+  <li><a href="distinfo/">distinfo/</a></li>
+  <li><a href="files/">files/</a></li>
+  <li><a href="pkg-comment/">pkg-comment/</a></li>
+  <li><a href="pkg-descr/">pkg-descr/</a></li>
+  <li><a href="pkg-plist/">pkg-plist/</a></li>
+ </ul>
+ <hr noshade><em>Powered by <a href="http://subversion.tigris.org/">Subversion</a></em>
+</body></html>

where is this html sneaking in from?  i'm not positive, but i suspect
that the same diff over ra_local wouldn't produce it.

to put it another way, if i run 'svn diff -r 1878:1879 packages/freebsd'
i expect to see the same output i would get from 'svn diff -r 1878:1879',
since revision 1879 only touched files inside packages/freebsd anyway.

> - Ben, who is getting tired of discussing diff's interface.  Sigh.
> 
> (At least it's not an 'svn status' discussion!)

*laugh*

-garrett

-- 
garrett rooney                    Remember, any design flaw you're 
rooneg@electricjellyfish.net      sufficiently snide about becomes  
http://electricjellyfish.net/     a feature.       -- Dan Sugalski

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org

Re: svn diff problem

Posted by Ben Collins-Sussman <su...@collab.net>.
Garrett Rooney <ro...@electricjellyfish.net> writes:

> i've seen this behavior mentioned on the list before, and i never got
> a satisfactory answer to it.
> 
> running 'svn diff -r 1878:1879 packages/freebsd/subversion' in the top
> level of a checked out svn tree produces a diff that includes a diff
> of the html that mod_dav_svn spits out for the directory
> packages/freebsd/subversion.  this can't possibly be what we want the
> user to see in this situation...
> 
> if you leave off the 'packages/freebsd/subversion' argument, the
> output is as i would expect.

I'm not sure what the issue is here.

In the first example, you're running

     svn diff -r X:Y foo/bar/baz

...which means, "do a diff between foo/bar/baz and itself at two
different revisions".  Thus I expect all paths to be relative to baz.
After all, the server is comparing two versions of baz, and driving an
editor to describe the differences.  Thus 'baz' is the root of the
tree-delta.

In the second case, you're running

     svn diff -r X:Y

...which means, "do a diff between '.' and itself and at two different
revisions."  If '.' happens to be the top of your tree, then you're
going to see *all* diffs within /trunk.  (Of course, in your
particular example, all changes in commit Y happened to be within baz
anyway)

So I turn the question around, what do you expect to see?

- Ben, who is getting tired of discussing diff's interface.  Sigh.

(At least it's not an 'svn status' discussion!)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org