~bzr-pqm/bzr/bzr.dev

2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
1
Introducing Bazaar
2
==================
3
4
What is Bazaar?
5
---------------
6
3074.1.1 by Ian Clatworthy
feedback from mrevell
7
Bazaar is a tool for helping people collaborate. It tracks the changes
8
that you and other people make to a group of files - such as software
9
source code - to give you snapshots of each stage of their evolution.
10
Using that information, Bazaar can effortlessly merge your work with
11
other people's.
12
13
Tools like Bazaar are called version control systems (VCS) and have
14
long been popular with software developers. Bazaar's ease of use,
15
flexibility and simple setup make it ideal not only for software
16
developers but also for other groups who work together on files and
17
documents, such as technical writers, web designers and translators.
18
19
This guide takes you through installing Bazaar and how to use it,
20
whether on your own or with a team of other people. If you're already
21
familiar with distributed version control and want to dive straight in, 
22
you may wish to skim this section and jump straight to
23
`Learning more`_.
2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
24
25
A brief history of version control systems
26
------------------------------------------
27
3074.1.1 by Ian Clatworthy
feedback from mrevell
28
Version control tools have been evolving for several decades now. In
3309.1.1 by Ian Clatworthy
Reduce evangelism in the User Guide
29
simple terms, there have been 4 generations of tools:
2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
30
3074.1.1 by Ian Clatworthy
feedback from mrevell
31
 1. file versioning tools, e.g. SCCS, RCS
2977.1.16 by Ian Clatworthy
intro tweaks
32
 2. tree versioning tools - central style, e.g. CVS
3309.1.1 by Ian Clatworthy
Reduce evangelism in the User Guide
33
 3. tree versioning tools - central style, take two, e.g. Subversion
34
 4. tree versioning tools - distributed style, e.g. Bazaar.
2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
35
36
The design and implementation of Bazaar builds on the lessons learned
37
from all the previous generations of tools. In particular, Bazaar
38
cleanly supports both the central and the distributed version
2977.1.16 by Ian Clatworthy
intro tweaks
39
control models so you can change models as it makes sense, without
40
needing to change tools.
2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
41
42
Central vs distributed VCS
43
--------------------------
44
45
Many traditional VCS tools require a central server which provides the
46
change history or *repository* for a tree of files. To work on the files,
47
users need to connect to the server and *checkout* the files. This gives
48
them a directory or *working tree* in which a person can make changes.
49
To record or *commit* these changes, the user needs access to the central
3074.1.1 by Ian Clatworthy
feedback from mrevell
50
server and they need to ensure they have merged their work with the latest
2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
51
version stored before trying to commit. This approach is known as the
52
centralized model. 
53
54
The centralized model has proven useful over time but it can have some notable
55
drawbacks. Firstly, a centralized VCS requires that one is able to connect
56
to the server whenever one wants to do version control work. Secondly, the
2977.1.16 by Ian Clatworthy
intro tweaks
57
centralized model tightly links the act of **snapshotting** changes with the act
58
of **publishing** those changes. This can be good in some circumstances but
59
it has a negative influence on quality in others.
2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
60
2977.1.2 by Ian Clatworthy
add conflict handling as an Appendix + minor tweaks
61
Distributed VCS tools let users and teams have multiple repositories
2977.1.16 by Ian Clatworthy
intro tweaks
62
rather than just a single central one. In Bazaar's case, the history is
2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
63
normally kept in the same place as the code that is being version controlled.
64
This allows the user to commit their changes whenever it makes sense, even
65
when offline. Network access is only required when publishing changes or
66
when accessing changes in another location.
67
2977.1.16 by Ian Clatworthy
intro tweaks
68
In fact, using distributed VCS tools wisely can have advantages well
69
beyond the obvious one of disconnected operations for developers.
70
Other advantages include:
71
72
 * easier for developers to create experimental branches
73
 * easier ad-hoc collaboration with peers
74
 * less time required on mechanical tasks - more time for creativity
2977.1.20 by Ian Clatworthy
more chapter 1 fixes
75
2977.1.16 by Ian Clatworthy
intro tweaks
76
 * increased release management flexibility through the use of
77
   "feature-wide" commits
2977.1.20 by Ian Clatworthy
more chapter 1 fixes
78
2977.1.16 by Ian Clatworthy
intro tweaks
79
 * trunk quality and stability can be kept higher, making everyone's
80
   job less stressful
2977.1.20 by Ian Clatworthy
more chapter 1 fixes
81
2977.1.16 by Ian Clatworthy
intro tweaks
82
 * in open source communities:
2977.1.20 by Ian Clatworthy
more chapter 1 fixes
83
2977.1.16 by Ian Clatworthy
intro tweaks
84
   * easier for non-core developers to create and maintain changes
2977.1.20 by Ian Clatworthy
more chapter 1 fixes
85
2977.1.16 by Ian Clatworthy
intro tweaks
86
   * easier for core developers to work with non-core developers and
87
     move them into the core
2977.1.20 by Ian Clatworthy
more chapter 1 fixes
88
89
 * in companies, easier to work with distributed and outsourced teams.
2977.1.16 by Ian Clatworthy
intro tweaks
90
   
2977.1.2 by Ian Clatworthy
add conflict handling as an Appendix + minor tweaks
91
For a detailed look at the advantages of distributed VCS tools over
2977.1.16 by Ian Clatworthy
intro tweaks
92
centralized VCS tools, see http://bazaar-vcs.org/BzrWhy.
2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
93
94
95
Key features of Bazaar
96
----------------------
97
98
While Bazaar is not the only distributed VCS tool around, it does have some
99
notable features that make it an excellent choice for many teams and
3309.1.1 by Ian Clatworthy
Reduce evangelism in the User Guide
100
communities. A summary of these and comparisons with other VCS tools
101
can be found on the Bazaar Wiki, http://bazaar-vcs.org.
102
103
Of the many features, one in particular is worth highlighting:
104
Bazaar is completely free software written in Python. As a result,
105
it is easy to contribute improvements. If you wish to get involved,
106
please see http://bazaar-vcs.org/BzrSupport.
2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
107
108
109
Learning more
110
-------------
111
112
This manual provides an easy to read introduction to Bazaar and how to use
2977.1.16 by Ian Clatworthy
intro tweaks
113
it effectively.  It is recommended that all users read at least the rest of
114
this chapter as it:
115
116
 * explains the core concepts users need to know
117
 * introduces some popular ways of using Bazaar to collaborate.
118
119
Chapters 2-6 provide a closer look at how to use Bazaar to complete
120
various tasks. It is recommended that most users read these in first-to-last
3416.1.1 by Ian Clatworthy
new structure and initial content for closing chapters
121
order shortly after starting to use Bazaar. Chapter 7 and beyond provide
122
additional information that helps you make the most of Bazaar once the core
123
functionality is understood. This material can be read when required and in
124
any order.
2977.1.16 by Ian Clatworthy
intro tweaks
125
126
If you are already familar with other version control tools,
127
you may wish to get started quickly by reading the following documents:
128
129
 * `Bazaar in five minutes`_ - a mini-tutorial
130
3066.4.1 by Ian Clatworthy
Rename Quick Start Guide to Quick Start Card
131
 * `Bazaar Quick Start Card`_ - a one page summary of commonly used commands.
2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
132
3311.1.1 by Ian Clatworthy
Reduced the evangelism in the User Guide (Ian Clatworthy)
133
In addition, the online help and `Bazaar User Reference`_ provide all the
134
details on the commands and options available.
2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
135
136
.. _Bazaar in five minutes: ../mini-tutorial/index.html
3066.4.1 by Ian Clatworthy
Rename Quick Start Guide to Quick Start Card
137
.. _Bazaar Quick Start Card: ../quick-reference/quick-start-summary.svg
2977.1.1 by Ian Clatworthy
First cut at new look User Guide including chapters 1 and 2
138
.. _Bazaar User Reference: ../user-reference/bzr_man.html
139
140
We hope you find this manual useful. If you have suggestions on how it
141
or the rest of Bazaar's documentation can be improved, please contact
142
us on the mailing list, bazaar@lists.canonical.com.