/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

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

  • Committer: Ian Clatworthy
  • Date: 2007-11-21 07:39:16 UTC
  • mto: (3054.1.1 ianc-integration)
  • mto: This revision was merged to the branch mainline in revision 3055.
  • Revision ID: ian.clatworthy@internode.on.net-20071121073916-qlpp5gvcf0639r38
1st cut at the 'Personal version control' chapter

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Introducing Bazaar
 
2
==================
 
3
 
 
4
What is Bazaar?
 
5
---------------
 
6
 
 
7
Bazaar is a tool for helping people collaborate. It does this by
 
8
tracking how a group of files evolves and using that information to help
 
9
people merge their changes together as safely as possible.
 
10
 
 
11
In general, tools that do this are known as revision control systems or
 
12
version control systems (VCS). In the past, VCS tools have been popular
 
13
with software developers. In the future, VCS tools will undoubtedly also be
 
14
important for other groups of people looking to collaborate together on
 
15
files and documents, e.g. technical writers and translators.
 
16
 
 
17
A brief history of version control systems
 
18
------------------------------------------
 
19
 
 
20
VCS tools have been evolving for several decades now. In simple terms,
 
21
there have been 5 generations of tools:
 
22
 
 
23
  1. file versioning tools, e.g. SCCS, VCS
 
24
  2. tree versioning tools - central style, e.g. CVS
 
25
  3. tree versioning tools - central style, done right, e.g. Subversion
 
26
  4. tree versioning tools - distributed style, e.g. Arch
 
27
  5. tree versioning tools - distributed style, done right, e.g. Bazaar.
 
28
 
 
29
The design and implementation of Bazaar builds on the lessons learned
 
30
from all the previous generations of tools. In particular, Bazaar
 
31
cleanly supports both the central and the distributed version
 
32
control models.
 
33
 
 
34
Central vs distributed VCS
 
35
--------------------------
 
36
 
 
37
Many traditional VCS tools require a central server which provides the
 
38
change history or *repository* for a tree of files. To work on the files,
 
39
users need to connect to the server and *checkout* the files. This gives
 
40
them a directory or *working tree* in which a person can make changes.
 
41
To record or *commit* these changes, the user needs access to the central
 
42
server and they need to unsure they have merged their work with the latest
 
43
version stored before trying to commit. This approach is known as the
 
44
centralized model. 
 
45
 
 
46
The centralized model has proven useful over time but it can have some notable
 
47
drawbacks. Firstly, a centralized VCS requires that one is able to connect
 
48
to the server whenever one wants to do version control work. Secondly, the
 
49
centralized model tightly links the act of snapshotting changes with the act
 
50
of publishing those changes. This can have a negative influence on quality.
 
51
 
 
52
Distributed VCS tools let users and teams have multiple repositories
 
53
rather than just one central one. In Bazaar's case, the history is
 
54
normally kept in the same place as the code that is being version controlled.
 
55
This allows the user to commit their changes whenever it makes sense, even
 
56
when offline. Network access is only required when publishing changes or
 
57
when accessing changes in another location.
 
58
 
 
59
For a detailed look at the advantages of distributed VCS tools over
 
60
centralized VCS tools, see http://bazaar-vcs.org/BzrWhy. In a nutshell,
 
61
it comes down to this: distributed VCS tools make effective collaboration
 
62
easier, saving effort and increasing quality along the way.
 
63
 
 
64
 
 
65
Key features of Bazaar
 
66
----------------------
 
67
 
 
68
While Bazaar is not the only distributed VCS tool around, it does have some
 
69
notable features that make it an excellent choice for many teams and
 
70
communities. These include:
 
71
 
 
72
  * it **Just Works** - a high focus on usability and performance
 
73
  * **adaptive** - cleanly supports many different ways of working together
 
74
  * **intelligent merging** that lets you collaborate without fear
 
75
  * **truly portable** across many operating systems including Windows
 
76
  * **renaming** of files and directories is properly supported
 
77
  * **safe with your data** - integrity is checked using cryptographic
 
78
    techniques and all changes can be digitally signed if required
 
79
  * **low administration**, e.g. automatic packing of repositories
 
80
  * **efficiently stores data** across branches in a flexible and safe way
 
81
  * an **open architecture and API** that makes it easy to integrate
 
82
    with other tools
 
83
  * a **large number of plugins** including bzr-svn and GUI front-ends
 
84
  * **excellent integration** with a range of companion tools and services
 
85
    including PQM, Bundle Buggy and Launchpad
 
86
  * **completely open source**
 
87
  * **commercial training and support** available from Canonical,
 
88
    the company that sponsors Ubuntu.
 
89
 
 
90
While all of these are important, perhaps the greatest asset Bazaar has is
 
91
an active and growing open source community behind it. Bazaar is completely
 
92
free software written in Python so it is easy to contribute improvements.
 
93
Our collective goal is to build and support a distributed VCS tool that
 
94
developers love to use, a tool that helps them get their job done without
 
95
getting in their way. If you wish to get involved, please see
 
96
http://bazaar-vcs.org/Community.
 
97
 
 
98
 
 
99
Learning more
 
100
-------------
 
101
 
 
102
This manual provides an easy to read introduction to Bazaar and how to use
 
103
it effectively. If you are already familar with other version control tools,
 
104
you may wish to get started with Bazaar more quickly by reading the
 
105
following documents initially instead:
 
106
 
 
107
* `Bazaar in five minutes`_ - a mini-tutorial
 
108
 
 
109
* `Bazaar Quick Start Summary`_ - a one page summary of commonly used commands.
 
110
 
 
111
The online help and `Bazaar User Reference`_ are also particularly useful as
 
112
they provide all the gory details on the commands and options available.
 
113
 
 
114
.. _Bazaar in five minutes: ../mini-tutorial/index.html
 
115
.. _Bazaar Quick Start Summary: ../quick-reference/quick-start-summary.svg
 
116
.. _Bazaar User Reference: ../user-reference/bzr_man.html
 
117
 
 
118
Either way, it is recommended that all users read the rest of this chapter
 
119
first which:
 
120
 
 
121
  * explains the core concepts users need to know
 
122
  * introduces some popular ways of using Bazaar to collaborate.
 
123
 
 
124
Remaining chapters provide a closer look at how to use Bazaar to complete
 
125
various tasks together with details on implementing some recommended
 
126
best practices.
 
127
 
 
128
We hope you find this manual useful. If you have suggestions on how it
 
129
or the rest of Bazaar's documentation can be improved, please contact
 
130
us on the mailing list, bazaar@lists.canonical.com.