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

Re: Ev2 as a move-aware editor

From: Daniel Shahaf <danielsh_at_elego.de>
Date: Wed, 26 Jun 2013 15:29:36 +0300

Branko Čibej wrote on Wed, Jun 26, 2013 at 13:33:00 +0200:
> On 26.06.2013 11:46, Daniel Shahaf wrote:
> > Greg Stein wrote on Wed, Jun 26, 2013 at 05:30:10 -0400:
> >> On Wed, Jun 26, 2013 at 5:25 AM, Daniel Shahaf <danielsh_at_elego.de> wrote:
> >>> Philip Martin wrote on Wed, Jun 26, 2013 at 09:30:42 +0100:
> >>>> Greg Stein <gstein_at_gmail.com> writes:
> >>>>
> >>>>> You're affecting six nodes, so I think you should be able to pack this
> >>>>> down into touching 6 nodes once each. I believe this will work:
> >>>>>
> >>>>> move(A/B, X/Y/Z/B)
> >>>>> rotate(A, X/Y/Z)
> >>>>> move(X/Y, A/B/C/Y)
> >>>>> rotate(X, A/B/C)
> >>>> Yes, I think that works.
> >>> This effectively uses temporary nodes (X/Y/Z/B and A/B/C/Y). I thought
> >>> one of the goals of Ev2 design was to not need such nodes. (This also
> >>> ties to my thread about what state the SRC argument of move() should be
> >>> relative to.)
> >> Only in Pedantic Bizarro Land.
> >>
> >> Come on, Daniel. There are no manufactured nodes. Those two are the
> >> final nodes, after a bit of parent rearrangement.
> >>
> >> We are not making up A2 or X2, as in Philip's original email. The
> >> commit process is not creating nodes that exist only during the txn.
> >> All nodes survive the txn.
> > X2 was a temporary name. A/B/C/Y is a temporary name. Neither the name
> > X2 nor the name A/B/C/Y survives the txn.
>
> You're confusing names with nodes. Don't.

I don't think I am. The name A/B/C/Y does not exist either in the
initial tree state (before the edit starts), nor in the final tree state
(after the edit ends). It only refers to a node at some points while
the edit is underway.

Yes, the node Y exists all along --- it was called X/Y in the initial
state and will be called X/Y in the final state. It's just that if your
reference point is either the initial or final state, you the name
A/B/C/Y does not refer to that node.

> Names are merely incidentally a (transient) identifier for nodes. In
> Greg's solution, no new nodes are created -- they /can't/ be because
> neither move() nor rotate() can create or delete nodes.
>

Agreed with all that. (In fact, I deleted similar sentences from
a draft of my reply to Greg.)

Daniel

> -- Brane
>
>
> --
> Branko Čibej | Director of Subversion
> WANdisco // Non-Stop Data
> e. brane_at_wandisco.com
Received on 2013-06-26 14:30:15 CEST

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.