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. |