~bzr-pqm/bzr/bzr.dev

2921.5.1 by Alexander Belchenko
bzr in 5 min: trivial fix for title
1
======================
2866.2.7 by Matthew Revell
Ian, John AM, Poolie, John G comments acted on. Corrected bzr send section, used 'parent' instead of 'main' branch, included two publishing sections - one for LP and one for sftp.
2
Bazaar in five minutes
2921.5.1 by Alexander Belchenko
bzr in 5 min: trivial fix for title
3
======================
2691.1.11 by Ian Clatworthy
Added mini tutorial
4
5
Introduction
6
============
7
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
8
Bazaar is a distributed version control system that makes it easier for
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
9
people to work together on software projects.
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
10
2866.2.2 by Matthew Revell
second revision of new Bazaar in Five Minutes
11
Over the next five minutes, you'll learn how to put your files under
2866.2.4 by Matthew Revell
mini-tutorial revision 3
12
version control, how to record changes to them, examine your work, publish
2866.2.7 by Matthew Revell
Ian, John AM, Poolie, John G comments acted on. Corrected bzr send section, used 'parent' instead of 'main' branch, included two publishing sections - one for LP and one for sftp.
13
it and send your work for merger into a project's trunk.
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
14
2691.1.11 by Ian Clatworthy
Added mini tutorial
15
16
Installation
17
============
18
2866.2.5 by Matthew Revell
Updated with Launchpad push and poolie, John G and Jam changes
19
This guide doesn't describe how to install Bazaar but it's usually very
20
easy. You can find installation instructions at:
21
22
- **GNU/Linux:** Bazaar is probably in your GNU/Linux distribution already.
3270.1.1 by Neil Martinsen-Burrell
change installation instructions for Mac
23
- **Windows:** `installation instructions for Windows`_.
24
- **Mac OS X:** `installation instructions for Mac OS X`_.
2866.2.5 by Matthew Revell
Updated with Launchpad push and poolie, John G and Jam changes
25
3270.1.1 by Neil Martinsen-Burrell
change installation instructions for Mac
26
For other platforms and to install from source code, see the Download_
2866.2.4 by Matthew Revell
mini-tutorial revision 3
27
and Installation_ pages.
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
28
5050.22.1 by John Arbash Meinel
Lots of documentation updates.
29
.. _installation instructions for Windows: http://wiki.bazaar.canonical.com/WindowsDownloads
30
.. _installation instructions for Mac OS X: http://wiki.bazaar.canonical.com/MacOSXBundle
31
.. _Download: http://wiki.bazaar.canonical.com/Download
32
.. _Installation: http://wiki.bazaar.canonical.com/InstallationFaq
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
33
34
35
Introducing yourself
2691.1.11 by Ian Clatworthy
Added mini tutorial
36
====================
37
5893.1.1 by Martin Pool
Improve mini-tutorial:
38
Bazaar records changes to source code, and it records who made the change.
39
The person is identified by their name and email address.  (If you're
40
concerned about spam, you don't need to use a real address that you
41
actually read, but the convention is that it looks like an email address.)
2866.2.2 by Matthew Revell
second revision of new Bazaar in Five Minutes
42
5893.1.1 by Martin Pool
Improve mini-tutorial:
43
Before you start working, let's tell Bazaar who you are.  Using your name
44
and email address, instead of John Doe's, type::
2866.2.2 by Matthew Revell
second revision of new Bazaar in Five Minutes
45
46
  $ bzr whoami "John Doe <john.doe@gmail.com>"
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
47
5893.1.1 by Martin Pool
Improve mini-tutorial:
48
You can check what identity is stored in Bazaar's configuration::
2691.1.11 by Ian Clatworthy
Added mini tutorial
49
50
  $ bzr whoami
2866.2.2 by Matthew Revell
second revision of new Bazaar in Five Minutes
51
  John Doe <john.doe@gmail.com>
2691.1.11 by Ian Clatworthy
Added mini tutorial
52
53
5893.1.1 by Martin Pool
Improve mini-tutorial:
54
Starting a new project
55
======================
56
57
Let's suppose we want to store a new project under Bazaar.  First, we'll
5997.1.1 by Martin Pool
Fix truncated sentence in mini-tutorial (thanks Wojtek Murawski)
58
make a *repository directory* to hold all our work related to this
6006.1.2 by Martin Pool
Explain more about repository directory, and don't forget to mention to initially add files
59
project, where developers can create branches to test development of
60
specific features or, more generally, modifications to the working file
61
set.  
62
63
After creating the repository, change to that directory, and create the
64
project's main trunk branch.
6015.43.4 by Martin Pool
Tweak syntax to work with non-sphinx docutils
65
66
::
6015.43.2 by Martin Pool
Improvements and corrections to mini-tutorial, especially wrt Launchpad.
67
68
  $ bzr init-repo sample
69
  Shared repository with trees (format: 2a)
70
  Location:
6015.43.4 by Martin Pool
Tweak syntax to work with non-sphinx docutils
71
    shared repository: sample
6015.43.2 by Martin Pool
Improvements and corrections to mini-tutorial, especially wrt Launchpad.
72
  $ bzr init sample/trunk
73
  $ cd sample/trunk
74
  Created a repository tree (format: 2a)                                         
75
  Using shared repository: /home/john/sample/
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
76
77
6006.1.2 by Martin Pool
Explain more about repository directory, and don't forget to mention to initially add files
78
Adding files
79
============
80
81
Now that we have the trunk, we need to move to that directory and
82
create some example files for the first version of that project.  Create
83
a file ``test1.txt`` using a text editor (like emacs, nano, or notepad),
84
and save it.  Then we'll "add" the file, which tells bzr we want it to
85
track changes::
86
87
  bzr add test1.txt
88
89
and then commit, which saves a snapshot of all versioned files::
90
91
  bzr commit -m "Added first line of text"
92
93
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
94
Making changes to your files
95
============================
96
6006.1.2 by Martin Pool
Explain more about repository directory, and don't forget to mention to initially add files
97
3053.9.1 by Ian Clatworthy
Doc tweaks from David Roberts and Aaron Bentley for 1.0 (Ian Clatworthy)
98
Let's change a file and commit that change to your branch.
2691.1.11 by Ian Clatworthy
Added mini tutorial
99
6015.43.2 by Martin Pool
Improvements and corrections to mini-tutorial, especially wrt Launchpad.
100
Edit ``test1.txt`` in your favourite editor, then use ``bzr add`` to tell bzr
101
to track changes to this file ::
102
103
  $ echo test test test > test1.txt 
104
  $ bzr add test1.txt
105
  adding test1.txt
106
107
`bzr diff` shows the changes between the last revision in this branch, and your
108
current tree (or, with the ``-r`` option, between any two trees). ::
2866.2.4 by Matthew Revell
mini-tutorial revision 3
109
2866.2.5 by Matthew Revell
Updated with Launchpad push and poolie, John G and Jam changes
110
 $ bzr diff
2866.2.4 by Matthew Revell
mini-tutorial revision 3
111
 === modified file 'test1.txt'
112
 --- test1.txt   2007-10-08 17:56:14 +0000
113
 +++ test1.txt   2007-10-08 17:46:22 +0000
114
 @@ -0,0 +1,1 @@
115
 +test test test
2691.1.11 by Ian Clatworthy
Added mini tutorial
116
2866.2.7 by Matthew Revell
Ian, John AM, Poolie, John G comments acted on. Corrected bzr send section, used 'parent' instead of 'main' branch, included two publishing sections - one for LP and one for sftp.
117
Commit your work to the Bazaar branch::
2691.1.11 by Ian Clatworthy
Added mini tutorial
118
3035.1.1 by John Arbash Meinel
Address bug #59302 and fix documentation that uses single quotes.
119
  $ bzr commit -m "Added first line of text"
6015.43.2 by Martin Pool
Improvements and corrections to mini-tutorial, especially wrt Launchpad.
120
  Committing to: /home/john/sample/trunk/                             
121
  added test1.txt
122
  Committed revision 1.
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
123
124
Viewing the revision log
2691.1.11 by Ian Clatworthy
Added mini tutorial
125
========================
126
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
127
You can see the history of your branch by browsing its log::
2691.1.11 by Ian Clatworthy
Added mini tutorial
128
6015.43.3 by Martin Pool
Doc formatting cleanups
129
  $ bzr log
2691.1.11 by Ian Clatworthy
Added mini tutorial
130
  revno: 1
2866.2.2 by Matthew Revell
second revision of new Bazaar in Five Minutes
131
  committer: John Doe <john.doe@gmail.com>
6015.43.2 by Martin Pool
Improvements and corrections to mini-tutorial, especially wrt Launchpad.
132
  branch nick: trunk
2866.2.4 by Matthew Revell
mini-tutorial revision 3
133
  timestamp: Mon 2006-10-08 17:46:22 +0000
2691.1.11 by Ian Clatworthy
Added mini tutorial
134
  message:
2866.2.4 by Matthew Revell
mini-tutorial revision 3
135
    Initial import
2691.1.11 by Ian Clatworthy
Added mini tutorial
136
137
5749.2.1 by mbp at sourcefrog
For the mini tutorial, just describe publishing to Launchpad, not SFTP
138
Publishing your branch on Launchpad
139
===================================
140
141
Launchpad is a suite of development and hosting tools for
142
software projects. You can use it to publish your branch.  (You can 
5749.2.5 by Martin Pool
Remove Sphinx-specific syntax
143
also publish branches onto your own server or other hosting services.)
2866.2.7 by Matthew Revell
Ian, John AM, Poolie, John G comments acted on. Corrected bzr send section, used 'parent' instead of 'main' branch, included two publishing sections - one for LP and one for sftp.
144
6015.43.2 by Martin Pool
Improvements and corrections to mini-tutorial, especially wrt Launchpad.
145
The steps to publishing branches on Launchpad are:
146
147
1. Create a Launchpad account: visit the `Launchpad login page`_ and choose to create a new account.
148
    
149
.. _Launchpad login page: https://launchpad.net/+login
150
    
151
2. Bazaar uses the SSH encryption and authentication protocol to connect
152
   to Launchpad.  You need to first `create an SSH key`_ on your own computer,
153
   by running the command::
154
    
6015.43.3 by Martin Pool
Doc formatting cleanups
155
       $ ssh-keygen
6015.43.2 by Martin Pool
Improvements and corrections to mini-tutorial, especially wrt Launchpad.
156
157
.. _create an SSH key: https://help.launchpad.net/YourAccount/CreatingAnSSHKeyPair    
158
       
159
3. `Upload your SSH public key to Launchpad`_.
160
 
161
.. _Upload your SSH public key to Launchpad: https://launchpad.net/~/+editsshkeys
162
    
163
4. `Make a team for your project`_.  Even if you're starting as the only
6583.1.1 by Vincent Ladeuil
Fix tutorial syntax
164
   developer on this project, creating a new one now will let you more
165
   easily add other people later.
6015.43.2 by Martin Pool
Improvements and corrections to mini-tutorial, especially wrt Launchpad.
166
 
167
.. _Make a team for your project: https://help.launchpad.net/Teams/CreatingAndRunning
168
      
169
5. `Create a project`_.
170
  
171
.. _Create a project: https://help.launchpad.net/Projects/Registering
172
173
6. Tell Bazaar your Launchpad account name.  If your account is john.doe, type ::
174
  
6015.43.3 by Martin Pool
Doc formatting cleanups
175
      $ bzr launchpad-login john.doe
6015.43.2 by Martin Pool
Improvements and corrections to mini-tutorial, especially wrt Launchpad.
176
177
7. `Push the branch for your project`_.  Once you've committed your changes 
178
   locally, you can publish them as the trunk of your new project by saying
179
    
6015.43.3 by Martin Pool
Doc formatting cleanups
180
       $ bzr push lp:~sample-developers/sample/trunk
6015.43.2 by Martin Pool
Improvements and corrections to mini-tutorial, especially wrt Launchpad.
181
       
182
   (Of course, using the team and project names you just chose.)
183
 
184
.. _Push the branch for your project: https://help.launchpad.net/Code/UploadingABranch
2866.2.5 by Matthew Revell
Updated with Launchpad push and poolie, John G and Jam changes
185
186
Creating your own copy of another branch
187
========================================
2866.2.2 by Matthew Revell
second revision of new Bazaar in Five Minutes
188
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
189
To work with someone else's code, you can make your own copy of their
2866.2.7 by Matthew Revell
Ian, John AM, Poolie, John G comments acted on. Corrected bzr send section, used 'parent' instead of 'main' branch, included two publishing sections - one for LP and one for sftp.
190
branch. Let's take a real-world example, Bazaar's GTK interface::
2866.2.2 by Matthew Revell
second revision of new Bazaar in Five Minutes
191
5893.1.1 by Martin Pool
Improve mini-tutorial:
192
  $ bzr init-repo ~/bzr-gtk
193
  $ bzr branch lp:~bzr/bzr-gtk/trunk ~/bzr-gtk/john
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
194
  Branched 292 revision(s).
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
195
196
Bazaar will download all the files and complete revision history from the
5893.1.1 by Martin Pool
Improve mini-tutorial:
197
bzr-gtk project's trunk branch and create a copy called ``john``.
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
198
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
199
Now, you have your own copy of the branch and can commit changes with
200
or without a net connection. You can share your branch at any time by
201
publishing it and, if the  bzr-gtk team want to use your work, Bazaar
2866.2.7 by Matthew Revell
Ian, John AM, Poolie, John G comments acted on. Corrected bzr send section, used 'parent' instead of 'main' branch, included two publishing sections - one for LP and one for sftp.
202
makes it easy for them to merge your branch back into their trunk branch.
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
203
204
205
Updating your branch from the main branch
2691.1.11 by Ian Clatworthy
Added mini tutorial
206
=========================================
207
2866.2.2 by Matthew Revell
second revision of new Bazaar in Five Minutes
208
While you commit changes to your branch, it's likely that other people will
2866.2.7 by Matthew Revell
Ian, John AM, Poolie, John G comments acted on. Corrected bzr send section, used 'parent' instead of 'main' branch, included two publishing sections - one for LP and one for sftp.
209
also continue to commit code to the parent branch.
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
210
211
To make sure your branch stays up to date, you should merge changes from
2866.2.7 by Matthew Revell
Ian, John AM, Poolie, John G comments acted on. Corrected bzr send section, used 'parent' instead of 'main' branch, included two publishing sections - one for LP and one for sftp.
212
the parent into your personal branch::
2691.1.11 by Ian Clatworthy
Added mini tutorial
213
214
  $ bzr merge
3596.3.1 by James Westby
Give the user a bit more information about which saved location is being used.
215
  Merging from saved parent location: http://bazaar.launchpad.net/~bzr/bzr-gtk/trunk
2691.1.11 by Ian Clatworthy
Added mini tutorial
216
  All changes applied successfully.
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
217
2866.2.2 by Matthew Revell
second revision of new Bazaar in Five Minutes
218
Check what has changed::
2691.1.11 by Ian Clatworthy
Added mini tutorial
219
220
  $ bzr diff
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
221
5893.1.1 by Martin Pool
Improve mini-tutorial:
222
If different branches have made changes to the same areas of the same
223
files, then merging them may generate conflicts.  When this happens,
224
Bazaar puts text markers like ``<<<<<<<`` into the files, and records them
225
in a list of conflicted files.  You should edit the files to reflect the
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.
228
2866.2.2 by Matthew Revell
second revision of new Bazaar in Five Minutes
229
If you're happy with the changes, you can commit them to your personal
230
branch::
2691.1.11 by Ian Clatworthy
Added mini tutorial
231
3035.1.1 by John Arbash Meinel
Address bug #59302 and fix documentation that uses single quotes.
232
  $ bzr commit -m "Merge from main branch"
2866.2.2 by Matthew Revell
second revision of new Bazaar in Five Minutes
233
  Committed revision 295.
2691.1.11 by Ian Clatworthy
Added mini tutorial
234
2866.2.5 by Matthew Revell
Updated with Launchpad push and poolie, John G and Jam changes
235
2866.2.1 by Matthew Revell
Rewrite of mini-tutorial as 'Bazaar in 5 minutes'
236
Learning more
2691.1.11 by Ian Clatworthy
Added mini tutorial
237
=============
238
3087.2.2 by Alexander Belchenko
fix link to user-guide in mini-tutorial
239
You can find out more about Bazaar in the
3053.9.1 by Ian Clatworthy
Doc tweaks from David Roberts and Aaron Bentley for 1.0 (Ian Clatworthy)
240
`Bazaar User Guide <../user-guide/index.html>`_.
2866.2.6 by Matthew Revell
Provisional update if 'learning more' section
241
242
To learn about Bazaar on the command-line::
2691.1.11 by Ian Clatworthy
Added mini tutorial
243
244
  $ bzr help
245
246
To learn about the ''foo'' topic or command::
247
248
  $ bzr help foo
5863.2.3 by Jonathan Riddell
more licence for docs
249
250
Licence
5893.1.1 by Martin Pool
Improve mini-tutorial:
251
=======
5863.2.3 by Jonathan Riddell
more licence for docs
252
253
Copyright 2007-2011 Canonical Ltd. Bazaar is free software, and you
254
may use, modify and redistribute both Bazaar and this document under
255
the terms of the GNU General Public License version 2 or later. See
256
<http://www.gnu.org/licenses/>.