Preparation Branches

A "Preparation Branch" is a way to describe branch-like functionality that distributed source control systems offer.

In its simplest form, it refers to the ability to prepare for a merge with a remote repository by committing several changes locally first.

However, other source control systems only ever allow you to march forward with changes: if you commit a mistake -- even if it is never shared -- your only choice is to commit yet another patch, preserving the original flaw forever. SVK, which adds distributed functionality to Subversion, has this weakness.

Darcs allows repairing mistakes before code is shared

Darcs recognizes that your preparation branch is a special phase in the code's life cycle. Since the code has been shared with no one else, it is safe to change history. Yes, darcs can change history. This gives you options to pick a workflow that best suits you:

The darcs commands to use in a preparation branch are simple and interactive, prompting you to select one or more patches from a list of recent work:

Providing tools to work with your preparation branch is just one of the innovative features of darcs. Darcs also supports Spontaneous Branches, which provide another kind of branch-like functionality, without having to create and merge a formal branch for a small task.

DarcsWiki: PreparationBranches (last edited 2007-12-26 11:48:36 by 82-33-137-16)