We probably need some notes on branching.

For now, here is a response to ticket [f90265fc83]:

# create testing branch<br>
fossil tag branch testing <i>uuid1</i>

# where <i>uuid1</i> is the point at which you want to branch<br>
# Note that the above command creates a new checkin which is a<br>
# sibling of <i>uuid1</i> and identical to it.<br>

# You still need to tell fossil to use it in the working directory<br>
fossil update testing<br>

# do some experimental work<br>
...<br>

# back to main branch<br>
fossil update <i>uuid1</i><br>
fossil update<br>

# The second update is needed because the main branch may have<br>
# moved on from <i>uuid1</i>.


Note that fossil has no concept of a default branch, and in the presence of multiple forks and branches you are usually safer to give an explicit argument to <b>fossil update</b>.

Because fossil supports distributed operation, forks which are not deliberate branches can be quite common, and there is probably no safe algorithm for "the latest non-branch UUID".