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

Re: Move using initial state

From: Julian Foad <julianfoad_at_btopenworld.com>
Date: Mon, 9 Sep 2013 17:35:53 +0100 (BST)

Branko Čibej wrote:

> Julian Foad wrote:
>> The design of Ev2 is based on the concept of incremental edits to a "current" tree state.  I feel that the idea that you could start editing the tree, deleting subtrees, and then come to an operation that says "Now please recover one of the subtrees that I earlier told you to delete" doesn't fit with that philosophy.
>>
>> The model of operation of the "split-move" scheme is no more split than the model implied by the "single-move" scheme; it's just more explicit.  It doesn't in any way change or add to the overall semantic content of
>> the edit, all it changes is the timing of the information, fore-warning the consumer that a forthcoming deletion is not to be regarded as final and
>> absolute.  That fore-warning makes a sequential consumer implementation feasible.
>
> I think you're assuming that an implementation that doesn't keep track of the
> initial state is simpler, or rather, "easier" to write. I don't agree with that
> assumption. The repository already has all history available, and the WC can
> "trivially" be taught to remember the initial state.

Hmm, my comment about "makes it feasible" may have been unfounded: I agree that we could relatively easily implement a consumer that works efficiently with that scheme.  In one possible implementation, purely for the purpose of illustrating whether I've understood correctly, the "delete" operation would not delete the subtree permanently until the end of the edit, and until then the subtree would merely be moved aside or hidden from the current view, but still able to be used as a move source, traced from a reference to its "initial state" path.

I still can't shake the feeling that it doesn't match the "sequential edit" philosophy.  It seems to me that fundamentally "move away" is very similar to "delete" and yet we're proposing to accord it a special privilege.  If we allow the edit driver to do that, then it feels like it should also be allowed to do things like create a new directory 'A/B' before creating the parent directory 'A' rather than the present requirement for doing everything in "build it up" order.

> I also don't agree that Ev2 design makes any assumptions about initial state.
> It's more likely that we're making too many assumptions about WC semantics.

Yes, I suspect you're right.  /me tries to get over that.

- Julian
Received on 2013-09-09 18:36:48 CEST

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