[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn diff, svn merge, and vendor branches (long)

From: Ben Collins-Sussman <sussman_at_collab.net>
Date: 2002-12-09 20:43:36 CET

Eric Gillespie <epg@pretzelnet.org> writes:

> Ben Collins-Sussman <sussman@collab.net> writes:
>
> > So I propose an enhancement: give dir_delta a new "mode" which
> > desensitizes it to ancestry. If it sees two files or dirs have the
> > same name -- that's enough. It just won't check for relatedness.
>
> That isn't enough. I should be able to svn diff gnuserv-3.12.3
> and gnuserv-3.12.5 even though the names aren't the same.

It will, don't worry. If you type 'svn diff http://.../gnuserv-3.12.3
http://.../gnuserv-3.12.5', it will still work as you expect.
dir_delta will "anchor" it's comparison on these two directories, no
matter what their names.

>
> > Once we've implemented this, it's simply a matter of making the two
> > modes available to 'svn diff' and 'svn merge'. I don't really care
> > which behavior is the default; we can add options to toggle
> > ancestry-sensitivity on or off.
>
> For merge, i'm not sure. But for diff i argue that the default
> should be not to worry about ancestry. Principle of least
> surprise and all that. If you'd rather wait on the discussion
> about defaults, that's fine with me.

I think I agree.

>
> > Second -- Eric's original bug. He ran 'svn diff' on two unrelated
> > file URLs. Consistent with dir_delta, he was shown two complete diffs
> > representing a delete and an add. In Chicago, we're all three in
> > agreement that this should never happen. We don't care about how it's
> > implemented, or whether it "makes sense" given the implementation --
> > it's just wrong output. None of us could come up with a *single*
> > use-case where a user would ever want or expect this behavior, even
> > if they knew svn's internals inside and out. This should be filed
> > as a bug.
>
> I'm confused that you see this as a separate issue. Maybe it's
> just because i don't understand the implementation. From my
> perspective, what is discussed above (your "First") covers
> this. And doing that will address this "Second"--won't it?

I thought someone mentioned that we have special-case code for diffing
a single file, since dir_delta() won't work on a lone file. My
"first" proposal may or may not fix this problem, I'm not sure till I
investigate implementations. I just wanted to point out that this bug
has a life of its own, no matter how it ends up fixed.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Mon Dec 9 20:49:18 2002

This is an archived mail posted to the Subversion Dev mailing list.