1
1
======================
3
3
======================
8
Breezy is a distributed version control system that makes it easier for
8
Bazaar is a distributed version control system that makes it easier for
9
9
people to work together on software projects.
11
11
Over the next five minutes, you'll learn how to put your files under
19
This guide doesn't describe how to install Breezy but it's usually very
19
This guide doesn't describe how to install Bazaar but it's usually very
20
20
easy. You can find installation instructions at:
22
- **GNU/Linux:** Breezy is probably in your GNU/Linux distribution already.
22
- **GNU/Linux:** Bazaar is probably in your GNU/Linux distribution already.
23
23
- **Windows:** `installation instructions for Windows`_.
24
24
- **Mac OS X:** `installation instructions for Mac OS X`_.
35
35
Introducing yourself
36
36
====================
38
Breezy records changes to source code, and it records who made the change.
38
Bazaar records changes to source code, and it records who made the change.
39
39
The person is identified by their name and email address. (If you're
40
40
concerned about spam, you don't need to use a real address that you
41
41
actually read, but the convention is that it looks like an email address.)
43
Before you start working, let's tell Breezy who you are. Using your name
43
Before you start working, let's tell Bazaar who you are. Using your name
44
44
and email address, instead of John Doe's, type::
46
$ brz whoami "John Doe <john.doe@gmail.com>"
48
You can check what identity is stored in Breezy's configuration::
46
$ bzr whoami "John Doe <john.doe@gmail.com>"
48
You can check what identity is stored in Bazaar's configuration::
51
51
John Doe <john.doe@gmail.com>
54
54
Starting a new project
55
55
======================
57
Let's suppose we want to store a new project under Breezy. First, we'll
57
Let's suppose we want to store a new project under Bazaar. First, we'll
58
58
make a *repository directory* to hold all our work related to this
59
59
project, where developers can create branches to test development of
60
60
specific features or, more generally, modifications to the working file
68
$ brz init-shared-repo sample
68
$ bzr init-repo sample
69
69
Shared repository with trees (format: 2a)
71
71
shared repository: sample
72
$ brz init sample/trunk
72
$ bzr init sample/trunk
73
74
Created a repository tree (format: 2a)
74
75
Using shared repository: /home/john/sample/
80
81
Now that we have the trunk, we need to move to that directory and
81
82
create some example files for the first version of that project. Create
82
83
a file ``test1.txt`` using a text editor (like emacs, nano, or notepad),
83
and save it. Then we'll "add" the file, which tells brz we want it to
84
and save it. Then we'll "add" the file, which tells bzr we want it to
87
# create the file test1.txt now
91
89
and then commit, which saves a snapshot of all versioned files::
93
$ brz commit -m "Added first line of text"
91
bzr commit -m "Added first line of text"
98
94
Making changes to your files
102
98
Let's change a file and commit that change to your branch.
104
Edit ``test1.txt`` in your favourite editor, then use ``brz add`` to tell brz
100
Edit ``test1.txt`` in your favourite editor, then use ``bzr add`` to tell bzr
105
101
to track changes to this file ::
107
103
$ echo test test test > test1.txt
111
`brz diff` shows the changes between the last revision in this branch, and your
107
`bzr diff` shows the changes between the last revision in this branch, and your
112
108
current tree (or, with the ``-r`` option, between any two trees). ::
115
111
=== modified file 'test1.txt'
116
112
--- test1.txt 2007-10-08 17:56:14 +0000
117
113
+++ test1.txt 2007-10-08 17:46:22 +0000
121
Commit your work to the Breezy branch::
117
Commit your work to the Bazaar branch::
123
$ brz commit -m "Added first line of text"
119
$ bzr commit -m "Added first line of text"
124
120
Committing to: /home/john/sample/trunk/
126
122
Committed revision 1.
153
149
.. _Launchpad login page: https://launchpad.net/+login
155
2. Breezy uses the SSH encryption and authentication protocol to connect
151
2. Bazaar uses the SSH encryption and authentication protocol to connect
156
152
to Launchpad. You need to first `create an SSH key`_ on your own computer,
157
153
by running the command::
175
171
.. _Create a project: https://help.launchpad.net/Projects/Registering
177
6. Tell Breezy your Launchpad account name. If your account is john.doe, type ::
173
6. Tell Bazaar your Launchpad account name. If your account is john.doe, type ::
179
$ brz launchpad-login john.doe
175
$ bzr launchpad-login john.doe
181
177
7. `Push the branch for your project`_. Once you've committed your changes
182
178
locally, you can publish them as the trunk of your new project by saying
184
$ brz push lp:~sample-developers/sample/trunk
180
$ bzr push lp:~sample-developers/sample/trunk
186
182
(Of course, using the team and project names you just chose.)
191
187
========================================
193
189
To work with someone else's code, you can make your own copy of their
194
branch. Let's take a real-world example, Breezy's GTK interface::
190
branch. Let's take a real-world example, Bazaar's GTK interface::
196
$ brz init-shared-repo ~/brz-gtk
197
$ brz branch lp:~brz/brz-gtk/trunk ~/brz-gtk/john
192
$ bzr init-repo ~/bzr-gtk
193
$ bzr branch lp:~bzr/bzr-gtk/trunk ~/bzr-gtk/john
198
194
Branched 292 revision(s).
200
Breezy will download all the files and complete revision history from the
201
brz-gtk project's trunk branch and create a copy called ``john``.
196
Bazaar will download all the files and complete revision history from the
197
bzr-gtk project's trunk branch and create a copy called ``john``.
203
199
Now, you have your own copy of the branch and can commit changes with
204
200
or without a net connection. You can share your branch at any time by
205
publishing it and, if the brz-gtk team want to use your work, Breezy
201
publishing it and, if the bzr-gtk team want to use your work, Bazaar
206
202
makes it easy for them to merge your branch back into their trunk branch.
215
211
To make sure your branch stays up to date, you should merge changes from
216
212
the parent into your personal branch::
219
Merging from saved parent location: http://bazaar.launchpad.net/~brz/brz-gtk/trunk
215
Merging from saved parent location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk
220
216
All changes applied successfully.
222
218
Check what has changed::
226
222
If different branches have made changes to the same areas of the same
227
223
files, then merging them may generate conflicts. When this happens,
228
Breezy puts text markers like ``<<<<<<<`` into the files, and records them
224
Bazaar puts text markers like ``<<<<<<<`` into the files, and records them
229
225
in a list of conflicted files. You should edit the files to reflect the
230
way you want to resolve the conflicts, use ``brz diff`` to check the
231
changes, and then ``brz resolve`` to mark them as resolved.
226
way you want to resolve the conflicts, use ``bzr diff`` to check the
227
changes, and then ``bzr resolve`` to mark them as resolved.
233
229
If you're happy with the changes, you can commit them to your personal
236
$ brz commit -m "Merge from main branch"
232
$ bzr commit -m "Merge from main branch"
237
233
Committed revision 295.
243
You can find out more about Breezy in the
244
`Breezy User Guide <../user-guide/index.html>`_.
246
To learn about Breezy on the command-line::
239
You can find out more about Bazaar in the
240
`Bazaar User Guide <../user-guide/index.html>`_.
242
To learn about Bazaar on the command-line::
250
246
To learn about the ''foo'' topic or command::
257
Copyright 2007-2011 Canonical Ltd. Breezy is free software, and you
258
may use, modify and redistribute both Breezy and this document under
253
Copyright 2007-2011 Canonical Ltd. Bazaar is free software, and you
254
may use, modify and redistribute both Bazaar and this document under
259
255
the terms of the GNU General Public License version 2 or later. See
260
256
<http://www.gnu.org/licenses/>.