CoEdit Walk Through 

prev | next

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).