Subversion Filesystem Schema v2.0 Proposal

Quickie Thoughts on Pros/Cons

Pros:

Cons:

Entities

Revision
REVNUM Revision number (primary key)
ROOT-ID Root associated with this revision
TransactionRoot
ROOT-ID Primary key
ALIVE-P True iff the transaction is not dead
BASE-ROOT-NODE-ID Node ID of the root node in the tree on which this transaction is based
Root
ROOT-ID Primary key
REVNUM Revision number of committed root, or empty if root is not committed
ROOT-NODE-ID Node ID of the root node in the tree represented by this root
PROP-ID Property ID used to find properties associated with this root
NodeRevision
NODE-ID Primary key
KIND Node kind (file or dir, e.g.)
CREATED-ROOT-ID ID of root in which this node revision was created
CREATED-PATH Canonicalized path at which this node revision was created
BIRTH-NODE-ID Node revision ID of the first node revision in this node revision's line of history (useful for answering is_related() questions)
PRED-NODE-ID Node revision ID of this node revision's predecessor
PRED-COUNT Number of predecessors this node revision has
COPY-ID ID of the copy which caused this node revision to exist, if any
PROP-ID Property ID used to find properties associated with this node revision
DATA-ID Data ID used to find textual content associated with this node revision, if any
EDIT-DATA-ID Data ID used to find not-yet-finalized textual content associated with this node revision, if any [feels too back-end specific]
Copy
COPY-ID Primary key
SRC-PATH Canonicalized path which was the source of this copy
SRC-ROOT-ID Root ID in which the copy source was found
DST-NODE-ID Node revision ID of the copy destination
NodeSuccessor
NODE-ID Primary key (MULTI)
SUCC-NODE-ID Node revision ID of a successor of the node revision
DirectoryEntry
NODE-ID Primary key (MULTI)
CHILD-NAME Name of a child of the directory node revision
CHILD-NODE-ID Node revision ID of a child of the directory node revision (the child whose name is CHILD-NAME)
RootCopy
ROOT-ID Primary key (MULTI)
COPY-ID ID of a copy associated with this root