On 17.09.2013 12:55, Julian Foad wrote:
[...]
> Start with
>
> r10:
> trunk
> /A
> /B
>
> branch the trunk:
>
> r20:
> trunk
> /A
> /B
> branch
> /A (pointer to /trunk/A)
> /B (pointer to /trunk/B)
>
> modify branch/A:
>
> r30:
> trunk
> /A
> /B
> branch
> /A
> /B (pointer to /trunk/B)
>
> Now
> let's say we're diffing branch_at_20 and branch_at_30. I want to be able to
> report a mapping between each path in branch_at_20 and the path in r30
> corresponding to "the same node", where "the same node" is to be defined
> in some way that makes sense for tracking moves. In this simple
> example, there are not even any moves, and so I want the move-tracking
> code to be able to deduce the following 1:1 path-mapping between
> branch_at_20 and branch_at_20:
>
> PATH_at_20 PATH_at_30
> branch <-> branch
> branch/A <-> branch/A
> branch/B <-> branch/B
>
> It certainly must not report a simple (node-id, copy-id) correspondence, because that would look something like:
>
> PATH_at_20 PATH_at_30
> branch <-> branch
> branch/A <-> trunk/A # or (nil) as it's out of tree-scope
> (nil) <-> branch/A
> branch/B <-> branch/B
> which breaks the mapping between branch/A_at_20 and branch/A_at_30.
I'm confused. What are you trying to solve here? Subversion already
knows how to look through copies to find node equivalence. Your example
here has nothing to do with move tracking, and furthermore this problem
is already solved in the current implementation.
-- Brane
--
Branko Čibej | Director of Subversion
WANdisco // Non-Stop Data
e. brane_at_wandisco.com
Received on 2013-09-19 11:28:15 CEST