~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/en/mini-tutorial/index.txt

  • Committer: Martin Pool
  • Date: 2005-07-06 01:04:08 UTC
  • Revision ID: mbp@sourcefrog.net-20050706010408-6a5f429ee8eb3824
- Merge3.find_sync_regions() - avoid problems with iters on python2.3 by 
  just stepping through arrays; also make this return a list rather than 
  being a generator.

  Thanks very much to John for the report and help debugging.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
====================
2
 
Bazaar Mini Tutorial
3
 
====================
4
 
 
5
 
.. contents::
6
 
 
7
 
Introduction
8
 
============
9
 
 
10
 
This is a very brief 5-minute tutorial, covering only what a first time user
11
 
needs to start a project or start contributing to a project using Bazaar.
12
 
For a more detailed look, see `Learning More`_.
13
 
 
14
 
 
15
 
Installation
16
 
============
17
 
 
18
 
See http://bazaar-vcs.org/Download. Bazaar is probably in your GNU/Linux
19
 
distribution already. If not, it's trivial to install on any platform that
20
 
runs Python 2.4, including Windows. Installation should take at most a few
21
 
minutes.
22
 
 
23
 
 
24
 
Introducing Yourself
25
 
====================
26
 
 
27
 
You want Bazaar to correctly identify you in revision logs. Using your name
28
 
and email instead of Joe Doe's, type::
29
 
 
30
 
  $ bzr whoami "Joe Doe <joe.doe@gmail.com>"
31
 
 
32
 
Now try::
33
 
 
34
 
  $ bzr whoami
35
 
  Joe Doe <joe.doe@gmail.com>
36
 
 
37
 
 
38
 
Putting Existing Files Under Version Control
39
 
============================================
40
 
 
41
 
It is very easy to put an existing set of files under version control using
42
 
Bazaar::
43
 
 
44
 
  $ cd my-project
45
 
  $ bzr init .
46
 
  $ bzr add
47
 
  $ bzr commit -m "Initial import"
48
 
 
49
 
You can now make changes, track them, publish your branch and so on as
50
 
explained below.
51
 
 
52
 
 
53
 
Creating A Personal Branch
54
 
==========================
55
 
 
56
 
Rather than starting a new project, you may wish to work on an existing
57
 
project either you or someone else has published.
58
 
 
59
 
Create a branch of an existing project::
60
 
 
61
 
  $ bzr branch http://example.com/code/foobar.dev foobar.joe
62
 
  Branched 1 revision(s).                                                        
63
 
 
64
 
Note that after you create a personal branch, you don't need web access to
65
 
commit changes.
66
 
 
67
 
 
68
 
Making Changes
69
 
==============
70
 
 
71
 
Edit a file::
72
 
 
73
 
  $ cd foobar.joe
74
 
  $ hack...
75
 
 
76
 
Check what have you done::
77
 
 
78
 
  $ bzr diff
79
 
  === modified file 'foo.c'
80
 
  --- foo.c
81
 
  +++ foo.c
82
 
  @@ -30,6 +30,7 @@
83
 
 
84
 
   #include "foo.h"
85
 
 
86
 
  +
87
 
   static PyObject *
88
 
   _pyfribidi_log2vis (PyObject * self, PyObject * args, PyObject * kw)
89
 
   {
90
 
 
91
 
Commit your hard work::
92
 
 
93
 
  $ bzr commit -m 'added some whitespace'
94
 
  Committed revision 2.
95
 
 
96
 
 
97
 
Viewing the Revision Log
98
 
========================
99
 
 
100
 
Browse the history of the branch::
101
 
 
102
 
  $ bzr log
103
 
  ------------------------------------------------------------
104
 
  revno: 2
105
 
  committer: Joe Doe <joe.doe@gmail.com>
106
 
  branch nick: foobar.joe
107
 
  timestamp: Mon 2006-02-06 01:33:35 +0200
108
 
  message:
109
 
    added some whitespace
110
 
  ------------------------------------------------------------
111
 
  revno: 1
112
 
  committer: James Hacker <jmh@example.com>
113
 
  branch nick: foobar.dev
114
 
  timestamp: Mon 2006-02-06 01:06:11 +0200
115
 
  message:
116
 
    initial revision
117
 
 
118
 
 
119
 
Updating Your Branch from the Main Branch
120
 
=========================================
121
 
 
122
 
While you work hard on your branch, others may have committed new code to the
123
 
main branch. From time to time, you want to merge changes from the main
124
 
branch into your branch::
125
 
 
126
 
  $ bzr merge
127
 
  Using saved location: http://example.com/code/foobar.dev
128
 
  All changes applied successfully.
129
 
            
130
 
What was changed locally by merging the main branch?
131
 
 
132
 
::
133
 
 
134
 
  $ bzr diff
135
 
  === modified file 'pyfribidi.c'
136
 
  --- pyfribidi.c
137
 
  +++ pyfribidi.c
138
 
  @@ -236,6 +236,7 @@
139
 
          PyMem_Del (logical);
140
 
          PyMem_Del (visual);
141
 
   
142
 
  +    /* evil hack! */
143
 
          return result;
144
 
   }
145
 
 
146
 
Commit the changes from the main branch::
147
 
 
148
 
  $ bzr commit -m 'merge from main branch'
149
 
  Committed revision 6.
150
 
 
151
 
Note that you may occasionally need to resolve conflicts or make other minor
152
 
changes (so tests pass say) before committing. For these reasons, merge does
153
 
not implicitly commit.
154
 
 
155
 
 
156
 
Publishing Your Branch
157
 
======================
158
 
 
159
 
You can simply use rsync to copy your branch to a web server, but using
160
 
``bzr push`` is the easiest way. Let's assume you want to publish your
161
 
branch in jod.example.com/foobar.joe and you have sftp access to the server::
162
 
 
163
 
  $ bzr push sftp://jod@jod.example.com/public_html/foobar.joe/
164
 
  2 revision(s) pushed.
165
 
    
166
 
Note that to use sftp, your may need to install ''paramiko'' and ''pyCrypto''.
167
 
See http://bazaar-vcs.org/InstallationFaq for details.
168
 
 
169
 
Now anyone can get your branch with (try it yourself!)::
170
 
 
171
 
  bzr branch http://jod.example.com/foobar.joe/
172
 
 
173
 
 
174
 
Learning More
175
 
=============
176
 
 
177
 
To learn about bzr topics::
178
 
 
179
 
  $ bzr help
180
 
 
181
 
To learn about bzr commands::
182
 
 
183
 
  $ bzr help commands
184
 
 
185
 
To learn about the ''foo'' topic or command::
186
 
 
187
 
  $ bzr help foo
188
 
 
189
 
Alternatively, browse the `Bazaar Documentation <../../index.html>`_.