Differences between revisions 12 and 13
Revision 12 as of 2012-10-26 10:26:30
Size: 1765
Editor: brane
Comment: Testing SVG attachments
Revision 13 as of 2012-10-27 08:34:26
Size: 1817
Editor: JulianFoad
Comment: Display one of the images in-line, by attaching & linking to a PNG version.
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
{{attachment:fs2-tree-view.png|fs2-tree-view.png}}

The Versioned Filesystem

Subversion's versioned filesystem is a temporally ordered sequence of discrete snapshots of the state of a tree of nodes. These immutable snapshots are called revisions. The initial revision (Revision 0) contains exactly one node, the root directory. The last, or youngest revision, is called the HEAD.

Beside this sequence of immutable revisions, the filesystem can contain an arbitrary number of transactions, which are mutable snapshots that have no successors and whose predecessors (base revisions) are immutable. The only way to create a new revision is to merge the tree mutations described by a transaction into the HEAD tree and append the result to the revision sequence, thereby creating a new HEAD (in other words, rebase the transaction to HEAD and make it immutable).

fs2-tree-view.png

Embedded image/svg+xml

Nodes are either files, which are containers of unstructured data, or directories, which are lists of named files and directories. The root node of this tree is always a directory.

Within any single revision, each node (except the root) will have exactly one parent. However, successive revision trees are not independent and a node may trace its history across many revisions. A node revision is the projection of one branch of a node's history in a particular revision; it can have at most one predecessor in an earlier revision and any number of successors in later revisions.

For example, in the following diagram we have four revisions of the node tree containing 15 node revisions, but only 4 distinct nodes:

[ATTACH]

FS2/Design (last edited 2012-10-27 08:34:26 by JulianFoad)