9. Create another branch
Barney wants to create his own branch:
This displays a dialog requesting the name of the new branch to be created. Barney enters 'bam' and clicks OK:
Now Barney's instance of CoEdit shows [bam] in the title bar:
Barney makes some edits and selects check-in. The changes are committed to branch 'bam':
Fred (who is still on branch 'head') makes yet more edits and commits them, resulting in:
Note that Fred was able to commit this change without needing to perform an update to retrieve the changes made by Barney. This is because Barney created a separate branch, and the server of course allows them to diverge within the repository.
We now have the following picture of branches and check-ins in the repository:
Each branch is depicted as a horizontal line on which a linear sequence of check-ins (blue dots) are shown. A branch is thought of as having a well defined and immutable starting point, but is always open for further check-ins onto the end of the branch. A user cannot check-in onto a branch without first performing an update as required to enforce the constraint that each branch has linear history.
The start position of branch 'bam' is associated with a specific document state (i.e. the state that results from the first three check-ins). This can be regarded as a named, immutable snapshot of the data (i.e. a tag).