~bzr/ubuntu/lucid/bzr/beta-ppa

« back to all changes in this revision

Viewing changes to doc/en/user-guide/organizing_branches.txt

  • Committer: Martin Pool
  • Date: 2010-07-02 07:29:40 UTC
  • mfrom: (129.1.7 packaging-karmic)
  • Revision ID: mbp@sourcefrog.net-20100702072940-hpzq5elg8wjve8rh
* PPA rebuild.
* PPA rebuild for Karmic.
* PPA rebuild for Jaunty.
* PPA rebuild for Hardy.
* From postinst, actually remove the example bash completion scripts.
  (LP: #249452)
* New upstream release.
* New upstream release.
* New upstream release.
* Revert change to Build-depends: Dapper does not have python-central.
  Should be python-support..
* Target ppa..
* Target ppa..
* Target ppa..
* Target ppa..
* New upstream release.
* Switch to dpkg-source 3.0 (quilt) format.
* Bump standards version to 3.8.4.
* Remove embedded copy of python-configobj. Closes: #555336
* Remove embedded copy of python-elementtree. Closes: #555343
* Change section from 'Devel' to 'Vcs'..
* Change section from 'Devel' to 'Vcs'..
* Change section from 'Devel' to 'Vcs'..
* Change section from 'Devel' to 'Vcs'..
* Change section from 'Devel' to 'Vcs'..
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* debian/control: Fix obsolete-relation-form-in-source
  lintian warning. 
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Split out docs into bzr-doc package.
* New upstream release.
* Added John Francesco Ferlito to Uploaders.
* Fix install path to quick-reference guide
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Fix FTBFS due to path changes, again.
* Fix FTBFS due to doc paths changing
* New upstream release.
* Fix FTBFS due to path changes, again.
* Fix FTBFS due to doc paths changing
* New upstream release.
* Fix FTBFS due to path changes, again.
* Fix FTBFS due to doc paths changing
* New upstream release.
* Fix FTBFS due to path changes, again, again.
* Fix FTBFS due to path changes, again.
* Fix FTBFS due to path changes.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Bump standards version to 3.8.3.
* Remove unused patch system.
* New upstream release.
* New upstream release.
* New upstream release.
* Fix copy and paste tab error in .install file
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
 + Fixes compatibility with Python 2.4. Closes: #537708
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream version.
* Bump standards version to 3.8.2.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Add python-pyrex to build-deps to ensure C extensions are always build.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Split documentation into bzr-doc package. ((LP: #385074)
* Multiple packaging changes to make us more linitan clean.
* New upstream release.
* Split documentation into bzr-doc package. ((LP: #385074)
* Multiple packaging changes to make us more linitan clean.
* New upstream release.
* Split documentation into bzr-doc package. ((LP: #385074)
* Multiple packaging changes to make us more linitan clean.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Fix API compatibility version. (Closes: #526233)
* New upstream release.
  + Fixes default format for upgrade command. (Closes: #464688)
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Add missing dependency on zlib development library. (Closes:
  #523595)
* Add zlib build-depends.
* Add zlib build-depends.
* Add zlib build-depends.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Move to section vcs.
* Bump standards version to 3.8.1.
* New upstream release.
* Remove temporary patch for missing .c files from distribution
* New upstream release.
* Remove temporary patch for missing .c files from distribution
* New upstream release.
* Remove temporary patch for missing .c files from distribution
* Add temporary patch for missing .c files from distribution
* Add temporary patch for missing .c files from distribution
* Add temporary patch for missing .c files from distribution
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Recommend ca-certificates. (Closes: #452024)
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Update watch file. bazaar now uses launchpad to host its sources.
* Remove patch for inventory root revision copy, applied upstream.
* New upstream release.
* New upstream release.
* New upstream release
* Force removal of files installed in error to /etc/bash_completion.d/
  (LP: #249452)
* New upstream release.
* New upstream release
* New upstream release.
* Bump standards version.
* Include patch for inventory root revision copy, required for bzr-svn.
* New upstream release.
* Remove unused lintian overrides.
* Correct the package version not to be native.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* New upstream release.
* Final 1.5 release.
* New upstream release.
* New upstream release.
* New upstream release.
* Add myself as a co-maintainer.
* Add a Dm-Upload-Allowed: yes header.
* New upstream bugfix release.
* New upstream release.
* Final 1.3 release.
* New upstream release.
* First release candidate of the upcoming 1.3 release.
* Rebuild to fix the problem caused by a build with a broken python-central.
* New upstream release.
* Rebuild for dapper PPA.
* Apply Lamont's patches to fix build-dependencies on dapper.
  (See: https://bugs.launchpad.net/bzr/+bug/189915)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Organizing branches
 
2
===================
 
3
 
 
4
Mirror branches
 
5
---------------
 
6
 
 
7
A primary difference when using distributed workflows to
 
8
develop is that your main local branch is not the place
 
9
to make changes. Instead, it is kept as a pristine copy
 
10
of the central branch, i.e. it's a *mirror branch*.
 
11
 
 
12
To create a mirror branch, set-up a shared repository
 
13
(if you haven't already) and then use the ``branch``
 
14
(or ``checkout``) command to create the mirror.
 
15
For example::
 
16
 
 
17
  bzr init-repo PROJECT
 
18
  cd PROJECT
 
19
  bzr branch sftp://centralhost/srv/bzr/PROJECT/trunk
 
20
 
 
21
Task branches
 
22
-------------
 
23
 
 
24
Each new feature or fix is developed in its own branch.
 
25
These branches are referred to as *feature branches* or
 
26
*task branches* - the terms are used interchangeably.
 
27
 
 
28
To create a task branch, use the ``branch`` command
 
29
against your mirror branch. For example::
 
30
 
 
31
  bzr branch trunk fix-123
 
32
  cd fix-123
 
33
  (hack, hack, hack)
 
34
 
 
35
There are numerous advantages to this approach:
 
36
 
 
37
 1. You can work on multiple changes in parallel
 
38
 2. There is reduced coupling between changes
 
39
 3. Multiple people can work in a peer-to-peer mode
 
40
    on a branch until it is ready to go.
 
41
 
 
42
In particular, some changes take longer to cook than others
 
43
so you can ask for reviews, apply feedback, ask for another
 
44
review, etc. By completing work to sufficient quality in
 
45
separate branches before merging into a central branch, the
 
46
quality and stability of the central branch are maintained
 
47
at higher level than they otherwise would be.
 
48
 
 
49
Refreshing a mirror branch
 
50
--------------------------
 
51
 
 
52
Use the ``pull`` command to do this::
 
53
 
 
54
  cd trunk
 
55
  bzr pull
 
56
 
 
57
Merging the latest trunk into a feature branch
 
58
----------------------------------------------
 
59
 
 
60
Use the ``merge`` command to do this::
 
61
 
 
62
  cd fix-123
 
63
  bzr merge
 
64
  (resolve any conflicts)
 
65
  bzr commit -m "merged trunk"
 
66
 
 
67
Merging a feature into the trunk
 
68
--------------------------------
 
69
 
 
70
The policies for different distributed workflows vary here.
 
71
The simple case where all developers have commit rights to
 
72
the main trunk are shown below.
 
73
 
 
74
If your mirror is a checkout::
 
75
 
 
76
  cd trunk
 
77
  bzr update
 
78
  bzr merge ../fix-123
 
79
  (resolve any conflicts)
 
80
  bzr commit -m "Fixed bug #123"
 
81
 
 
82
If your mirror is a branch::
 
83
 
 
84
  cd trunk
 
85
  bzr pull
 
86
  bzr merge ../fix-123
 
87
  (resolve any conflicts)
 
88
  bzr commit -m "Fixed bug #123"
 
89
  bzr push
 
90
 
 
91
Backing up task branches
 
92
------------------------
 
93
 
 
94
One of the side effects of centralized workflows is that changes
 
95
get frequently committed to a central location which is backed up as
 
96
part of normal IT operations. When developing on task branches,
 
97
it is a good idea to publish your work to a central location
 
98
(but not necessarily a shared location) that will be backed up.
 
99
You may even wish to bind local task branches to remote ones
 
100
established on a backup server just for this purpose.