Suppose that you have "dev" and "bugs" as your two lines of
development.
Further suppose that fixes added to "bugs" line should go into
"dev" but not the other way around (this matches a large
percentage of all software development efforts).
Create two copies of the same repository and name them "bugs" and
"dev".
We put them in /home/bk/bugs and /home/bk/dev.
When you need to do a bugfix, clone the bugs tree;
when you want to do development, clone the dev tree.
A project lead will periodically pull changes from the main bugs
tree into the dev tree to keep it up to date.
PROS:
-
simple to explain
-
all work tends to converge on the trunk
-
works for most people
-
follows the "work forward model"
CONS:
-
you have to be careful not to push the dev tree into bugs, use bk
level to prevent this from happening.
-
can only easily work "forward", i.e., work may flow from bugs to
dev but not backwards.
It's possible to move stuff backwards as patches but it isn't as
easy as the other way.