|
From: | graydon hoare |
Subject: | [Monotone-devel] Re: current multiple heads (was Re: write access to my public server) |
Date: | Sun, 02 May 2004 16:46:13 -0400 |
User-agent: | Mozilla Thunderbird 0.5 (X11/20040208) |
Asger Ottar Alstrup wrote:
I think a representation like this is better, since it seems so much simpler. A repository is a set of changes, organised in a DAG. To help solve the problem of space, distinguish between the relations between changes and the contents of the changes. So each edge in the DAG points to a patch, but the patch itself can be missing, because it has been compressed away.
well, our current representation is *implemented* this way -- one bucket of edge-describing metadata, one bucket of content-describing deltas -- we just don't have particularly convenient names for edges, other than naming their endpoints. that has the benefit of simplicity, though, as well as letting you name "edges" which were never actually recorded by a user in a database (say, spanning several versions).
In order to work on a repository with others in a distributed manner, it should be sufficient to know all the relations between changes, but not the exact contents of those changes. In other words, all users should have the full DAG, but can omit many of the patches themselves.
I think from a UI perspective this is undesirable. maybe I'm wrong, but my experience so far has been that "knowing what you have on disk" lends the program an important sense of comfort. nobody likes a VC system telling them a particular state is unconstructable. it's almost better not to know about that state.
anyways, I think we have a sufficiently workable solution to the motivating problem here (possible cycles due to reversion, and the breaking thereof), so I'm going to pass on redoing the underlying representation.
thanks for your input though. I understand the change-centric view is important at the UI level; I've heard this repeatedly in recent weeks, and will endeavour to add further support for it. it may mean overhauling storage and networking someday, but I think not today.
-graydon
[Prev in Thread] | Current Thread | [Next in Thread] |