~greatmay12/+junk/test1

« back to all changes in this revision

Viewing changes to doc/en/user-guide/publishing_a_branch.txt

  • Committer: thitipong at ndrsolution
  • Date: 2011-11-14 06:31:02 UTC
  • Revision ID: thitipong@ndrsolution.com-20111114063102-9obte3yfi2azku7d
ndr redirect version

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Publishing a branch
 
2
===================
 
3
 
 
4
Setting up a central repository
 
5
-------------------------------
 
6
 
 
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.
 
10
 
 
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.::
 
16
 
 
17
  bzr init-repo --no-trees sftp://centralhost/srv/bzr/PROJECT
 
18
 
 
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.
 
24
 
 
25
 
 
26
Starting a central branch
 
27
-------------------------
 
28
 
 
29
There are two ways of populating a central branch with some initial
 
30
content:
 
31
 
 
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.
 
34
 
 
35
Here is an example of the first way::
 
36
 
 
37
  bzr init-repo PROJECT  (prepare local repository)
 
38
  bzr init PROJECT/trunk
 
39
  cd 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
 
46
 
 
47
Here is an example of the second way::
 
48
 
 
49
  bzr init-repo PROJECT  (prepare local repository)
 
50
  cd PROJECT
 
51
  bzr init sftp://centralhost/srv/bzr/PROJECT/trunk
 
52
  bzr checkout sftp://centralhost/srv/bzr/PROJECT/trunk
 
53
  cd 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)
 
58
 
 
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.
 
64
 
 
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.