Karl Fogel <kfogel@galois.ch.collab.net> writes:
> The parent information should not be recorded in dag_node_t. A
> dag_node_t represents a node in the dag filesystem, and may have
> multiple parents (even in one revision tree).
>
> The information you're trying to preserve isn't information the dag
> filesystem knows or cares about -- parent information is important
> only to the "virtual filesystem", uh, perhaps better called the
> "versioning filesystem". (Whichever it is, I'll call it the vfs from
> now on).
Exactly right.
I'd amplify by saying that the whole point of the DAG layer is to be
as simple as possible while still having the ability to ensure the
integrity of the filesystem. Path traversal is hardly a complicated
thing (although I think it's a bit more complex than one might guess),
but it can be implemented cleanly in terms of a dumb dag, and
*anything* we can keep out of the dag module makes the system a bit
better.
> A dag_node_t is currently something we can retrieve by key (see
> svn_fs_id_t). The value associated with that key knows nothing about
> parent information. So if dag_node_t had a parent fields, then when
> we retrieve a dag_node_t it would have to be incomplete.
For what it's worth, that interface (creating a dag_node_t given a
node ID) was only needed by the clone tracking stuff. So that
function could go away.
Received on Sat Oct 21 14:36:22 2006