Diff
Not logged in

Differences From:

File www/branching.wiki part of check-in [dc1a5cf739] - Updates to the branching document. by drh on 2009-01-23 22:05:37. [view]

To:

File www/branching.wiki part of check-in [766bec08ce] - Documentation tweaks. Change the "Setup" menu title to "Admin". Added pages under Admin to view the RCVFROM table of the database. by drh on 2009-01-25 19:18:09. [view]

@@ -81,11 +81,11 @@
 <img src="branch03.gif" width=282 height=152><br>
 Figure 3
 </td></tr></table></center>
 
-Check-in 5 is a direct child of check-in 3 because it was created by editing
+Check-in 5 is a child of check-in 3 because it was created by editing
 check-in 3.  But check-in 5 also inherits the changes from check-in 4 by
-virtual of the merge.  So we say that check-in 5 is a <i>merge child</i>
+virtue of the merge.  So we say that check-in 5 is a <i>merge child</i>
 of check-in 4 and that it is a <i>direct child</i> of check-in 3.
 The graph is now back to a single leaf (check-in 5).
 
 We have already seen that if fossil is in autosync mode then Bob would
@@ -110,11 +110,11 @@
 debate.  We will simply point out that fossil enables you to do it either way.
 
 <h2>Forking Versus Branching</h2>
 
-Forking and having more than one leaf in the check-in tree is usually
-considered undesirable, and so forks are usually quickly resolved as
-shown in figure 3 above.
+Having more than one leaf in the check-in tree is usually
+considered undesirable, and so forks are usually either avoided entirely,
+as in figure 1, or else quickly resolved as shown in figure 3.
 But sometimes, one does want to have multiple leaves.  For example, a project
 might have one leaf that is the latest version of the project under
 development and another leaf that is the latest version that has been
 tested.
@@ -147,9 +147,9 @@
 check-ins 9 and 10.
 
 In both figures 2 and 4, check-in 2 has two children.  In figure 2,
 we called this a "fork".  In diagram 4, we call it a "branch".  What is
-the difference?  As far as the internal fossil data structure are
+the difference?  As far as the internal fossil data structures are
 concerned, there is no difference.  The distinction is in the intent.
 In figure 2, the fact that check-in 2 has multiple children is an
 accident that stems from concurrent development.  In figure 4, giving
 check-in 2 multiple children is a deliberate act.  So, to a good
@@ -173,17 +173,18 @@
 tags as properties with a NULL value.  So, tags and properties really
 are much the same thing, and henceforth we will use the word "tag"
 to mean either a tag or a property.
 
-A tag can be either a one-time tag or an propagating tag or a cancellation.
+A tag can be either a one-time tag or an propagating tag or a cancellation tag.
 A one-time tag only applies to the check-in to which it is attached.  A
 propagating tag applies to the check-in to which it is attached and also
 to all direct descendants of that check-in.  A <i>direct descendant</i>
 is a descendant through direct children.  Tags propagation does not
 cross merges.  Tag propagation also stops as soon
 as it encounters another check-in with the same tag.  A cancellation tag
 is attached to a single check-in in order to either override a one-time
-tag that was placed on that same check-in, or to block tag propagation.
+tag that was previously placed on that same check-in, or to block
+tag propagation from an ancestor.
 
 Every repository is created with a single empty check-in that has two
 propagating tags.  In figure 5, that initial empty check-in is check-in 1.
 The <b>branch</b> tag tells (by its value)
@@ -215,9 +216,9 @@
 check-ins on the trunk go by the symbolic name of "trunk" and check-ins
 that are on the test branch go by the symbolic name "test".
 
 The <b>bgcolor=blue</b> tag on check-in 4 causes the background color
-of timelines to be blue for check-in 4 and its descendants.
+of timelines to be blue for check-in 4 and its direct descendants.
 
 Figure 5 also shows two one-time tags on check-in 9.  (The diagram does
 not make a graphical distinction between one-time and propagating tags.)
 The <b>sym-release-1.0</b> tag means that check-in 9 can be referred to
@@ -232,8 +233,9 @@
 
 <blockquote><dl>
 <dt><b>Branch</b></dt>
 <dd><p>A branch is a set of check-ins that have the same value for their
+branch property.</p></dd>
 <dt><b>Leaf</b></dt>
 <dd><p>A leaf is a check-in that has no children in the same branch.</p></dd>
 <dt><b>Closed Leaf</b></dt>
 <dd><p>A closed leaf is leaf that has the <b>closed</b> tag.  Such leaves