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

Re: svn commit: r1204035 - in /subversion/branches/moves-scan-log/subversion: include/svn_wc.h libsvn_client/update.c

From: Philip Martin <philip.martin_at_wandisco.com>
Date: Mon, 21 Nov 2011 10:52:18 +0000

stsp_at_apache.org writes:

> Author: stsp
> Date: Sat Nov 19 18:34:52 2011
> New Revision: 1204035
>
> URL: http://svn.apache.org/viewvc?rev=1204035&view=rev
> Log:
> On the moves-scan-log branch, change the way data about server-side moves
> is returned from the log history scanner.
>
> Before this change, a given sequence of moves which happened in
> given revisions, such as:
> rA: mv x->z
> rA: mv a->b
> rB: mv b->c
> rC: mv c->d
> resulted in a map of original source paths to a list of all moves
> of this node:
>
> 'x' : [(rA, x->z)]
> 'a' : [(rA, a->b), (rB, b->c), (rC, c->d)]
>
> This is impractical. During updates the base revision of the working copy
> is arbitrary so we might not know the nodes 'a' and 'x' under these names.
> So, instead, build a map of revision numbers to all moves which happened
> in the given revision, which looks as follows:
>
> rA : [(rA, x->z), (rA, a->b)]
> rB : [(rB, b->c),]
> rC : [(rC, c->d),]
>
> This will later allow an update to find relevant moves based on the base
> revision of a node. Additionally, all moves pertaining to the same node
> are chained into a doubly-linked list via 'next' and 'prev' pointers.
> This way, an update can look up all moves relevant to a node, forwards
> or backwards in history, once it has located a relevant move in the chain.
> This can be visualized as follows:
>
> rA : [(rA, x->z, prev=>NULL, next=>NULL),
> (rA, a->b, prev=>NULL, next=>(rB, b->c))]
> rB : [(rB, b->c), prev=>(rA, a->b), next=>(rC, c->d)]
> rC : [(rC, c->d), prev=>(rB, c->d), next=>NULL,]
>
> The update editor still does not use this information. But it will soon.

That's very useful when trying to understand the code, so why is it in
the log message and not in the code?

-- 
Philip
Received on 2011-11-21 11:53:12 CET

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.