4
Pipelines are implemented using a bazaar plugin.
6
$ mkdir -p ~/.bazaar/plugins
7
$ bzr branch lp:bzr-pipeline ~/.bazaar/plugins/pipeline
9
Basic info for pipelines can be found using `bzr help pipeline`.
11
Pipelines require lightweight checkouts, but that is how `cobzr` and how the
12
recommendations are specified in the `bazaar-usage.txt` document.
18
Pipelines could be thought of as a doubly linked list of dependent branches.
20
Often when working you need to break up the implementation, either because the
21
work can be more easily reviewed as a collection of small independent changes,
22
or the work can be landed incrementally.
24
Another reason is to avoid mixing new work with other refactoring that occurs
25
during the process of writing the new work. Often when adding new features,
26
other parts of code need to change. The branch is easier to review if the
27
prerequisite changes happen seperately.
29
Sometimes you don't know you want to refactor things until half of it is done
30
already. In this situation you can create a new pipe before the current one,
31
and move the changes into it.
33
$ bzr add-pipe --before some-refactoring-work
36
This enters you into an interactive merge of the changes from the next branch
43
When merging trunk into a pipeline, you should move to the first branch in the
48
# resolve any conflicts that may be there
49
$ bzr commit -m "Merge trunk"
52
The pump command is effectively merging each pipe into the next pipe and
53
commits without changing the current active pipe. The pump command starts
54
with the active pipe. If there are conflicts from any particular merge, the
55
pumping stops, and the active branch is set to be the branch that had the
56
conflicts ready for you to fix the conflicts.
62
$ bzr alias pipes="show-pipeline"
64
Show the branches in the pipeline. All branches are considered a pipeline
65
with one branch, so you can run this on any branch (actually a lightweight
66
checkout). The current pipe is shown with an `*` at the start of the line.
68
$ bzr alias next="switch-pipe :next"
69
$ bzr alias prev="switch-pipe :prev"
71
These two aliases allow you to move around the pipeline using:
73
$ bzr next # move to the next branch in the pipeline
74
$ bzr prev # move to the previous branch in the pipeline
77
$ bzr alias pdiff="diff -r branch::prev"
79
Show me the differences that this branch has introduced compared to the
80
previous branch in the pipeline.
82
$ bzr alias unpumped="missing --mine :next"
84
Show the revisions that are in the current branch that are not yet in the next
85
branch in the pipeline.