4
Setting up a central repository
5
-------------------------------
7
While the centralized workflow can be used by socially nominating
8
any branch on any computer as the central one, in practice most
9
teams have a dedicated server for hosting central branches.
11
Just as it's best practice to use a shared repository locally,
12
it's advisable to put central branches in a shared repository.
13
Note that central shared branches typically only want to
14
store history, not working copies of files, so their enclosing
15
repository is usually creating using the ``no-trees`` option, e.g.::
17
bzr init-repo --no-trees sftp://centralhost/srv/bzr/PROJECT
19
You can think of this step as similar to setting up a new cvsroot or
20
Subversion repository. However, Bazaar gives you more flexibility
21
in how branches may be organised in your repository. See
22
`Advanced shared repository layouts <shared_repository_layouts.html>`_
23
in the appendices for guidelines and examples.
26
Starting a central branch
27
-------------------------
29
There are two ways of populating a central branch with some initial
32
1. Making a local branch and pushing it to a central location
33
2. Making an empty central branch then committing content to it.
35
Here is an example of the first way::
37
bzr init-repo PROJECT (prepare local repository)
38
bzr init PROJECT/trunk
40
(copy development files)
41
cp -ar ~/PROJECT . (copy files in using OS-specific tools)
42
bzr add (populate repository; start version control)
43
bzr commit -m "Initial import"
44
(publish to central repository)
45
bzr push sftp://centralhost/srv/bzr/PROJECT/trunk
47
Here is an example of the second way::
49
bzr init-repo PROJECT (prepare local repository)
51
bzr init sftp://centralhost/srv/bzr/PROJECT/trunk
52
bzr checkout sftp://centralhost/srv/bzr/PROJECT/trunk
54
cp -ar ~/PROJECT . (copy files in using OS-specific tools)
55
bzr add (populate repository; start version control)
56
bzr commit -m "Initial import"
57
(publish to central repository)
59
Note that committing inside a working tree created using
60
the ``checkout`` command implicitly commits the content to
61
the central location as well as locally. Had we used the
62
``branch`` command instead of ``checkout`` above, the
63
content would have only been committed locally.
65
Working trees that are tightly bound to a central location
66
like this are called *checkouts*. The rest of this chapter
67
explains their numerous features in more detail.