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

Re: Revision 2 [was Re: [PATCH] Fix for Issue #1093 (pre-release)]

From: Shlomi Fish <shlomif_at_vipe.stud.technion.ac.il>
Date: 2003-10-29 12:51:49 CET

On Tue, 28 Oct 2003, C. Michael Pilato wrote:

> Shlomi Fish <shlomif@vipe.technion.ac.il> writes:
>
> > Resolves Issue #1093 (svn diff does not follow moves or copies)
> >
> > * libsvn_repos/delta.c:
> > Added the get_node_id_with_history function that attempts to extract
> > information about the node from the two root FS's and its path.
> >
> > (svn_repos_dir_delta): converted to use get_node_id_with_history. After
> > its use, it uses the returned parameters (active_*) instead of the
> > original ones.
>
> [...]
>
> > cmpilato, do you believe this patch does not break anything?
>
> I'm sorry. Did I just read that you want to hit the history code
> inside svn_repos_dir_delta()? Let me rephrase: did I just read that
> inside a function whose job it is to compare two roots and paths, you
> want to simply choose entirely different roots and paths without
> informing the caller?
>

Ah hah. Guess it's a bad idea.

> Oh. My. God.
>

My God too...

> It's obvious that I choose a bad day to be my Tuesday.
>
> *Besides* the theoretical hell you're proposing to introduce (which,
> by the way, I have right plenty of already thank you very much), did
> you consider what happens if someone does 'svn diff -r 4:10 foo.c' and
> they *know* that the foo.c in revision 10 is an entirely different
> piece of history than the foo.c in revision 4?

In that case, the code (and the old code) should compare the two
historaclly different files. My code defaults to the old behaviour if it
can find both files+revisions pairs and if it doesn't it searches in the
old history of the other revision with the path.

> I see no UI changes to
> accommodate this situation, so there's practically no *way* the code
> does not break anything.
>

> Look, the solution to issue #1093 is two fold:
>
> 1. Introduce UI for specifying the 3 piece of information
> necessary for describing a Subversion history set:
>
> - a revision X
> - the path P in that revision X (to pinpoint a given line of history)

Why a single path? A diff can operate on two distinct (even unrelated)
pathes.

> - a range {M:N} of that line of history on which to operate.
>

I don't really understand this section. What is the difference between the
revision X and N:M. You mean that in revision X both pathes are present?
And we diff P1 at X where it was at revision M and P2 at X where it was at
revision N?

Regards,

        Shlomi Fish

> 2. Ask the repository for path/revision pairs which describe
> (P,X)@M and (P,X)@N, and use those pairs for your operation.
>

----------------------------------------------------------------------
Shlomi Fish shlomif@vipe.technion.ac.il
Home Page: http://t2.technion.ac.il/~shlomif/

An apple a day will keep a doctor away. Two apples a day will keep two
doctors away.

        Falk Fish

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Wed Oct 29 12:52:37 2003

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

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.