279
279
_repositories = \
282
Repositories in Bazaar are a way of sharing storage between different branches.
283
If a branch is created within a shared repository then it will place the
284
revisions within it. Then when any other branches are created within the same
285
repository they will use the same revisions where they are common to both
286
branches. This has little effect for distinct projects, but where the branches
287
share some history there will be a large space saving. The space savings can
288
also become large time savings as well, for instance when branching within
289
a shared repositories.
282
Repositories in Bazaar are where committed information is stored. It is
283
possible to create a shared repository which allows multiple branches to
284
share their information in the same location. When a new branch is
285
created it will first look to see if there is a containing repository it
288
When two branches of the same project share a repository, there is
289
generally a large space saving. For some operations (e.g. branching
290
within the repository) this translates in to a large time saving.
291
292
To create a shared repository use the init-repository command (or the alias
292
init-repo). This command takes as an argument the location of the repository
293
to create. This means that 'bzr init-repository repo' will create a directory
294
named 'repo', which contains a shared repository. Any new branches that are
295
created in this directory will then be 'in' the repository, and use it for
293
init-repo). This command takes the location of the repository to create. This
294
means that 'bzr init-repository repo' will create a directory named 'repo',
295
which contains a shared repository. Any new branches that are created in this
296
directory will then use it for storage.
298
298
It is a good idea to create a repository whenever you might create more
299
299
than one branch of a project. This is true for both working areas where you
300
300
are doing the development, and any server areas that you use for hosting
301
projects. In the latter case, if you do not want to do work directly there
302
you may wish to not have the branches have working trees. If the working trees
303
are not present then there will be less disk space used, and a lot of
304
operations will be sped up. To create a repository in which the branches will
305
not have working trees pass the '--no-trees' option to 'init-repository'.
301
projects. In the latter case, it is common to want branches without working
302
trees. Since the files in the branch will not be edited directly there is no
303
need to use up disk space for a working tree. To create a repository in which
304
the branches will not have working trees pass the '--no-trees' option to
307
307
Related commands:
309
309
init-repository Create a shared repository. Use --no-trees to create one
310
in which new branches wont get a working tree.
310
in which new branches won't get a working tree.
313
314
_working_trees = \
316
A working tree is the contents of a branch checked out on disk so that you can
317
A working tree is the contents of a branch placed on disk so that you can
317
318
see the files and edit them. The working tree is where you make changes to a
318
319
branch, and when you commit the current state of the working tree is the
319
320
snapshot that is recorded in the commit.
321
When you push a branch to a remote system then a working tree will not be
322
created, or if there is already one there it will not be updated. This is
323
because an update to the working tree can cause conflicts, and that is
324
hard to deal with remotely.
322
When you push a branch to a remote system, a working tree will not be
323
created. If one is already present the files will not be updated. The
324
branch information will be updated and the working tree will be marked
325
as out-of-date. Updating a working tree remotely is difficult, as there
326
may be uncommitted changes or the update may cause content conflicts that are
327
difficult to deal with remotely.
326
329
If you have a branch with no working tree you can use the 'checkout' command
327
330
to create a working tree. If you run 'bzr checkout .' from the branch it will
328
create the working tree. If a subsequent push from a remote system updates the
329
branch you can update the working tree to match the branch by running 'bzr
330
update' in the branch.
331
create the working tree. If the branch is updated remotely, you can update the
332
working tree by running 'bzr update' in that directory.
332
334
If you have a branch with a working tree that you do not want the 'remove-tree'
333
335
command will remove the tree if it is safe. This can be done to avoid the