~bzr-pqm/bzr/bzr.dev

2977.1.13 by Ian Clatworthy
more cleanups and creation of tutorials directory
1
Configuring Bazaar
2
==================
3
4
Telling Bazaar about yourself
5
-----------------------------
6
7
One function of a version control system is to keep track of who changed
8
what.  In a decentralized system, that requires an identifier for each
9
author that is globally unique.  Most people already have one of these: an
10
email address. Bazaar is smart enough to automatically generate an email
11
address by looking up your username and hostname. If you don't like the
12
guess that Bazaar makes, then use the ``whoami`` command to set the
13
identifier you want::
14
15
    % bzr whoami "Your Name <email@example.com>"
4853.1.1 by Patrick Regan
Removed trailing whitespace from files in doc directory
16
2977.1.13 by Ian Clatworthy
more cleanups and creation of tutorials directory
17
If ``whoami`` is used without an argument, the current value is displayed.
18
5335.2.2 by Martin Pool
Add note about setting http proxy in the user guide
19
Using a network proxy
20
---------------------
21
5538.2.1 by Zearin
Fixed capitalization of XML and HTTP. Fixed by hand and only where appropriate (e.g., left http://some/url lowercase, but capitalized "When making an HTTP request…").
22
If your network requires that you use an HTTP proxy for outbound
5335.2.2 by Martin Pool
Add note about setting http proxy in the user guide
23
connections, you must set the ``http_proxy`` variable.  If the proxy is
24
also required for https connections, you need to set ``https_proxy`` too.
25
If you need these and don't have them set, you may find that connections
26
to Launchpad or other external servers fail or time out.
27
28
On Unix you typically want to set these in ``/etc/environment`` or
29
``~/.bash_profile`` and on Windows in the user profile.
30
31
::
32
33
  http_proxy=http://proxy.example.com:3128/
34
  https_proxy=http://proxy.example.com:3128/
35
5335.2.3 by Martin Pool
Document no_proxy
36
The ``no_proxy`` variable can be set to a comma-separated list of hosts
37
which shouldn't be reached by the proxy.  (See
38
<http://docs.python.org/library/urllib.html> for more details.)
39
5743.3.7 by Vincent Ladeuil
Add some documentation about option and sections.
40
Various ways to configure
41
-------------------------
42
43
As shown in the example above, there are various ways to
5743.3.10 by Vincent Ladeuil
Fix typos mentioned in reviews.
44
configure Bazaar, they all share some common properties though.
45
An option has:
5743.3.7 by Vincent Ladeuil
Add some documentation about option and sections.
46
47
- a name which is generally a valid python identifier,
48
5743.3.10 by Vincent Ladeuil
Fix typos mentioned in reviews.
49
- a value which is a string. In some cases, Bazaar will be able
5743.3.7 by Vincent Ladeuil
Add some documentation about option and sections.
50
  to recognize special values like 'True', 'False' to infer a
51
  boolean type, but basically, as a user, you will always specify
52
  a value as a string.
53
5743.3.10 by Vincent Ladeuil
Fix typos mentioned in reviews.
54
Options are grouped in various contexts so the option name
55
uniquely identifies it in this context. When needed, options can
56
be made persistent by recording them in a configuration file.
5743.3.7 by Vincent Ladeuil
Add some documentation about option and sections.
57
5335.2.3 by Martin Pool
Document no_proxy
58
2977.1.13 by Ian Clatworthy
more cleanups and creation of tutorials directory
59
Configuration files
60
-------------------
61
5278.1.5 by Martin Pool
Correct more sloppy use of the term 'Linux'
62
Configuration files are located in ``$HOME/.bazaar`` on Unix and
2977.1.13 by Ian Clatworthy
more cleanups and creation of tutorials directory
63
``C:\Documents and Settings\<username>\Application Data\Bazaar\2.0`` on
64
Windows. There are three primary configuration files in this location:
65
66
* ``bazaar.conf`` describes default configuration options,
67
68
* ``locations.conf`` describes configuration information for
69
  specific branch locations,
70
71
* ``authentication.conf`` describes credential information for
72
  remote servers.
73
74
Each branch can also contain a configuration file that sets values specific
75
to that branch. This file is found at ``.bzr/branch/branch.conf`` within the
3418.5.1 by Vincent Ladeuil
Fix #183705 by updating the authentication docs regarding ssh agents.
76
branch. This file is visible to **all users of a branch**. If you wish to
77
override one of the values for a branch with a setting that is specific to you,
78
then you can do so in ``locations.conf``.
2977.1.13 by Ian Clatworthy
more cleanups and creation of tutorials directory
79
80
Here is sample content of ``bazaar.conf`` after setting an email address using
81
the ``whoami`` command::
82
83
  [DEFAULT]
84
  email = Your Name <email@example.com>
85
86
For further details on the syntax and configuration settings supported, see
4634.164.1 by Alexander Belchenko
fixed URL to User Reference.
87
`Configuration Settings <../user-reference/index.html#configuration-settings>`_
3089.3.1 by Ian Clatworthy
move reference material out of User Guide into User Reference
88
in the Bazaar User Reference.
3398.1.21 by Ian Clatworthy
add 'Rule-based references' section to the User Guide
89
90
5447.4.15 by Vincent Ladeuil
Add some user-guide documentation for bzr config.
91
Looking at the active configuration
92
-----------------------------------
93
94
To look at all the currently defined options, you can use the following
95
command::
96
97
  bzr config
98
99
``bzr`` implements some rules to decide where to get the value of a
100
configuration option.
101
102
The current policy is to examine the existing configurations files in a
103
given order for matching definitions.
104
105
  * ``locations.conf`` is searched first for a section whose name matches the
106
    location considered (working tree, branch or remote branch),
107
108
  * the current ``branch.conf`` is searched next,
109
110
  * ``bazaar.conf`` is searched next,
111
112
  * finally, some options can have default values generally defined in the
113
    code itself and not displayed by ``bzr config`` (see `Configuration
114
    Settings <../user-reference/index.html#configuration-settings>`_).
115
116
This is better understood by using ```bzr config`` with no arguments, which
117
will display some output of the form::
118
119
  locations:
120
    post_commit_to = commits@example.com
121
    news_merge_files = NEWS
122
  branch:
123
    parent_location = bzr+ssh://bazaar.launchpad.net/+branch/bzr/
124
    nickname = config-modify
125
    push_location = bzr+ssh://bazaar.launchpad.net/~vila/bzr/config-modify/
126
  bazaar:
127
    debug_flags = hpss,
128
129
Each configuration file is associated with a given scope whose name is
130
displayed before each set of defined options.
131
6561.1.1 by Vincent Ladeuil
Clarify option references expansion for `bzr config`.
132
If you need to look at a specific option, you can use::
133
134
  bzr config <option>
135
136
This will display only the option value and is intended to be used in
137
scripts.
138
5447.4.15 by Vincent Ladeuil
Add some user-guide documentation for bzr config.
139
Modifying the active configuration
140
----------------------------------
141
142
To set an option to a given value use::
143
144
  bzr config opt=value
145
6561.1.1 by Vincent Ladeuil
Clarify option references expansion for `bzr config`.
146
An option value can reference another option by enclosing it in curly
147
braces::
148
149
  bzr config opt={other_opt}/subdir
150
151
If ``other_opt`` is set to ``'root``, ``bzr config opt`` will display::
152
153
  root/subdir
154
155
Note that when ``--all`` is used, the references are left as-is to better
156
reflect the content of the config files and make it easier to organize them::
157
158
  bzr config --all .*opt
159
160
  bazaar:
161
    [DEFAULT]
162
    opt = {other_opt}/subdir
163
    other_opt = root
164
165
166
167
168
5447.4.15 by Vincent Ladeuil
Add some user-guide documentation for bzr config.
169
To remove an option use::
170
171
  bzr config --remove opt
172
173
3398.1.21 by Ian Clatworthy
add 'Rule-based references' section to the User Guide
174
Rule-based preferences
175
----------------------
176
177
Some commands and plugins provide custom processing on files matching
3606.2.5 by Robert Collins
Cherry pick Robert's 'disable .bzrrules in-tree' patch
178
certain patterns. Per-user rule-based preferences are defined in
179
``BZR_HOME/rules``.
3398.1.21 by Ian Clatworthy
add 'Rule-based references' section to the User Guide
180
181
For further information on how rules are searched and the detailed syntax of
4634.164.2 by Alexander Belchenko
change links to user-reference/bzr_man.html to user-reference/index.html everywhere in the User Guide.
182
the relevant files, see `Rules <../user-reference/index.html#rules>`_
3398.1.21 by Ian Clatworthy
add 'Rule-based references' section to the User Guide
183
in the Bazaar User Reference.
5646.1.2 by Martin Pool
Add brief user documentation of command line splitting
184
185
186
Escaping command lines
187
----------------------
188
189
When you give a program name or command line in configuration, you can quote
190
to include special characters or whitespace.  The same rules are used across
191
all platforms.
192
193
The rules are: strings surrounded by double-quotes are interpreted as single
194
"words" even if they contain whitespace, and backslash may be used to quote
195
quotation marks.  For example::
196
197
    BZR_EDITOR="C:\Program Files\My Editor\myeditor.exe"