|
|
|
When to Create a Clone
Branching, should be done when development in a tree starts
diverging.
Suppose, for example, there is a main line repository called
stable.
When stable reaches a frozen state near release, only proven code
that fixes bugs may be incorporated to that tree, but development
must be allowed to continue for both the required bug fixes and
for development of the next version of the software.
The solution is to create three different repositories for work:
-
stable-1.0: The main line repository for the 1.0 release, where
only approved bug fixes are incorporated.
-
bugfixes-1.0: The repository for developers to work on bug fixes
that will, when approved, be incorporated to the stable-1.0
release.
-
dev-1.1: The repository to continue development that will become a
part of the 1.1 release.
Work Flow
It's fairly common for a software project to branch into stable
and bug fixes branches, and the flow of work goes only one way --
work flows to new development branches, but does not travel back
from new development branches to old trees.
The flow of work for the example above is as follows:
-
bugfixes-1.0: Work will be propagated to stable-1.0 and dev-1.1.
-
stable-1.0: Work, if any, will be propagated to dev-1.1.
Normally, once a release has gone into a frozen state, development
would occur in bugfixes rather than stable, and then only
scrutinized code would be propagated to stable.
-
dev-1.1: Work will never back flow to stable-1.0 nor bugfixes-1.0.
|