/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to doc/tutorial.txt

  • Committer: John Arbash Meinel
  • Date: 2006-09-20 14:51:03 UTC
  • mfrom: (0.8.23 version_info)
  • mto: This revision was merged to the branch mainline in revision 2028.
  • Revision ID: john@arbash-meinel.com-20060920145103-02725c6d6c886040
[merge] version-info plugin, and cleanup for layout in bzr

Show diffs side-by-side

added added

removed removed

Lines of Context:
69
69
 
70
70
The centralized model can have some drawbacks. A centralized RCS requires
71
71
that one is able to connect to the server whenever one wants to do version
72
 
control work. This can be a bit of a problem if your server is on some other
73
 
machine on the internet and you are not. Or, worse yet, you **are** on the
 
72
control work. This can be a bit of a problem if your server on some other
 
73
machine on the internet and you are not. Or, worse yet, you ''are'' on the
74
74
internet but the server is missing!
75
75
 
76
76
Decentralized Revision Control Systems (which I'll call DRCS after this
90
90
a **revision** of the directory tree whenever the user asks. 
91
91
 
92
92
Revision control software such as Bazaar can do much more than just
93
 
storage and performing undo.  For example, with Bazaar a developer can
94
 
take the modifications in one branch of software and apply them to a
95
 
related branch -- even if those changes exist in a branch owned by
96
 
somebody else. This allows developers to cooperate without giving
97
 
write access to the repository.
 
93
storage and performing undo.  For example, with Bazaar developer can
 
94
take the modifications in one branch of software and apply them to
 
95
another, related, branch -- even if those changes exist in a branch owned
 
96
by somebody else. This allows developers to cooperate without giving write
 
97
access to repository.
98
98
 
99
99
Bazaar remembers the ''ancestry'' of a revision: the previous revisions
100
100
that it is based upon.  A single revision may have more than one direct
107
107
==============================
108
108
 
109
109
Bazaar installs a single new command, **bzr**.  Everything else is a
110
 
subcommand of this.  You can get some help with ``bzr help``. Some arguments 
111
 
are grouped in topics: ``bzr help topics`` to see which topics are available.
112
 
There will be more in the future.
 
110
subcommand of this.  You can get some help with `bzr help`.  There will be
 
111
more in the future.
113
112
 
114
113
One function of a version control system is to keep track of who changed
115
114
what.  In a decentralized system, that requires an identifier for each
119
118
guess that Bazaar makes, then three options exist:
120
119
 
121
120
 1. Set an email address via ``bzr whoami``.  This is the simplest way.
 
121
 To set a global identity, use::
 
122
 
 
123
     % bzr whoami 'Your Name <email@example.com>'
 
124
 
 
125
 If you'd like to use a different address for a specific branch, enter
 
126
 the branch folder and use::
 
127
 
 
128
     % bzr whoami --branch 'Your Name <email@example.com>'
 
129
 
 
130
 1. Setting the email address in the
 
131
 ``~/.bazaar/bazaar.conf`` [1]_ by adding the following lines. Please note that
 
132
 ``[DEFAULT]`` is case sensitive::
122
133
 
123
 
    To set a global identity, use::
124
 
 
125
 
    % bzr whoami "Your Name <email@example.com>"
126
 
 
127
 
    If you'd like to use a different address for a specific branch, enter
128
 
    the branch folder and use::
129
 
 
130
 
    % bzr whoami --branch "Your Name <email@example.com>"
131
 
 
132
 
 #. Setting the email address in the ``~/.bazaar/bazaar.conf`` [1]_ by adding the following lines.
133
 
    Please note that  ``[DEFAULT]`` is case sensitive::
134
134
    [DEFAULT]
135
135
    email= Your Name <email@isp.com>
136
136
 
137
 
    As above, you can override this settings on a branch by branch basis by
138
 
    creating a branch section in ``~/.bazaar/locations.conf`` and adding the
139
 
    following lines::
140
 
    [/the/path/to/the/branch]
 
137
 As above, you can override this settings on a branch by branch basis by
 
138
 creating a branch section in ``~/.bazaar/locations.conf`` and adding the
 
139
 following lines::
 
140
 
 
141
    [/the/directory/to/the/branch]
141
142
    email=Your Name <email@isp.com>
142
 
 
143
 
 
144
 
 #. Overriding the two previous options by setting the global environment
145
 
    variable ``$BZREMAIL`` or ``$EMAIL`` (``$BZREMAIL`` will take precedence) 
146
 
    to your full email address.
 
143
 
 
144
 1. Overriding the two previous options by setting the global environment
 
145
 variable ``$BZREMAIL`` or ``$EMAIL`` (``$BZREMAIL`` will take precedence) 
 
146
 to your full email address.
147
147
 
148
148
.. [1] On Windows, the users configuration files can be found in the
149
149
   application data directory. So instead of ``~/.bazaar/branch.conf``
155
155
Creating a branch
156
156
=================
157
157
 
158
 
History is by default stored in the .bzr directory of the branch. In a
159
 
future version of Bazaar, there will be a facility to store it in a
160
 
separate repository, which may be remote.  We create a new branch by
161
 
running ``bzr init`` in an existing directory::
 
158
History is by default stored in the .bzr directory of the branch. There
 
159
will be a facility to store it in a separate repository, which may be
 
160
remote.  We create a new branch by running **bzr init** in an existing
 
161
directory::
162
162
 
163
163
    % mkdir tutorial
164
164
    % cd tutorial
172
172
    ./  ../  .bzr/
173
173
    %
174
174
 
175
 
As with CVS, there are three classes of file: unknown, ignored, and
 
175
As for CVS, there are three classes of file: unknown, ignored, and
176
176
versioned.  The **add** command makes a file versioned: that is, changes
177
177
to it will be recorded by the system::
178
178
 
197
197
containing control files.  By default there is no separate repository or
198
198
database as used in svn or svk. You can choose to create a repository if
199
199
you want to (see the **bzr init-repo** command). You may wish to do this
200
 
if you have very large branches, or many branches of a moderately sized
 
200
if you have very large branches, or many branches of a moderate sized
201
201
project.
202
202
 
203
203
You'll usually refer to branches on your computer's filesystem just by
204
204
giving the name of the directory containing the branch.  bzr also supports
205
 
accessing branches over http and sftp, for example::
 
205
accessing branches over http, for example::
206
206
 
207
207
    % bzr log http://bazaar-vcs.org/bzr/bzr.dev/
208
 
    % bzr log sftp://bazaar-vcs.org/bzr/bzr.dev/
209
208
 
210
 
By installing bzr plugins you can also access branches using the rsync
211
 
protocol.
 
209
By installing bzr plugins you can also access branches over the sftp or
 
210
rsync protocols.
212
211
 
213
212
Reviewing changes
214
213
=================
299
298
 
300
299
If you use neither the `-m` nor the `-F` option then bzr will open an
301
300
editor for you to enter a message.  The editor to run is controlled by
302
 
your `$VISUAL` or `$EDITOR` environment variable, which can be overridden
303
 
by the `editor` setting in to ~/.bazaar/bazaar.conf; `$BZR_EDITOR` will
304
 
override either of the above mentioned editor options.  If you quit the
305
 
editor without making any changes, the commit will be cancelled.
 
301
your `$EDITOR` environment variable or 
 
302
add `editor` to ~/.bazaar/bazaar.conf; `$BZR_EDITOR` will override
 
303
the above mentioned editor options.  If you quit the editor without
 
304
making any changes, the commit will be cancelled.
306
305
 
307
306
Selective commit
308
307
----------------
499
498
  % bzr merge URL
500
499
 
501
500
 
502
 
If there is a conflict during a merge, 3 files with the same basename
503
 
are created. The filename of the common base is appended with ".BASE",
504
 
the filename of the file containing your changes is appended with
505
 
".THIS" and the filename with the changes from the other tree is
506
 
appended with ".OTHER".  Using a program such as kdiff3, you can now
507
 
comfortably merge them into one file.  In order to commit you have to
508
 
rename the merged file (".THIS") to the original file name.  To
509
 
complete the conflict resolution you must use the resolve command,
510
 
which will remove the ".OTHER" and ".BASE" files.  As long as there
511
 
exist files with .BASE, .THIS or .OTHER the commit command will
512
 
report an error.
513
 
 
514
 
::
515
 
 
516
 
  % kdiff3 file.BASE file.OTHER file.THIS
517
 
  % mv file.THIS file
518
 
  % bzr resolve file
 
501
If there is a conflict during a merge, 3 files with the same basename are
 
502
created. The filename of the common base is appended with .BASE, the
 
503
filename of the file containing your changes is appended .THIS and the
 
504
filename with the changes from the other tree is appended .OTHER.
 
505
Using a program such as kdiff3, you can now comfortably merge them into
 
506
one file. To commit you have to rename it to the original basename and
 
507
delete the other two files. As long as there exist files with .BASE, .THIS
 
508
or .OTHER the commit command will complain.
519
509
 
520
510
[**TODO**: explain conflict markers within files]
521
511
 
528
518
directory.  One can push a branch (or the changes for a branch) by one of
529
519
the following three methods:
530
520
 
531
 
* Rsync:   rsync -avrz LOCALBRANCH  servername.com/path/to/directory
 
521
* Rsync:   rsync -avrz LOCALBRANCH  servername.com/this/directory/here
532
522
 
533
523
  (or any other tool for publishing a directory to a web site.)
534
524
 
535
 
* bzr push sftp://servername.com/path/to/directory 
 
525
* bzr push sftp://servername.com/this/directory/here 
536
526
 
537
 
  (The destination directory must already exist unless the
538
 
  ``--create-prefix`` option is used.)
 
527
  (The directory that must already exist)
539
528
 
540
529
* The rspush plugin that comes with BzrTools
541
530