~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to doc/developers/overview.txt

  • Committer: Andrew Bennetts
  • Date: 2010-10-13 00:26:41 UTC
  • mto: This revision was merged to the branch mainline in revision 5498.
  • Revision ID: andrew.bennetts@canonical.com-20101013002641-9tlh9k89mlj1666m
Keep docs-plain working.

Show diffs side-by-side

added added

removed removed

Lines of Context:
5
5
This document describes the key classes and concepts within Bazaar.  It is
6
6
intended to be useful to people working on the Bazaar codebase, or to
7
7
people writing plugins.  People writing plugins may also like to read the 
8
 
guide to `Integrating with Bazaar <integrating.html>`_ for some specific
 
8
guide to `Integrating with Bazaar <integration.html>`_ for some specific
9
9
recipes.
10
10
 
11
11
If you have any questions, or if something seems to be incorrect, unclear
13
13
to the Bazaar mailing list.  
14
14
 
15
15
 
 
16
Using bzrlib
 
17
############
 
18
 
 
19
Within bzr
 
20
==========
 
21
 
 
22
When using bzrlib within the ``bzr`` program (for instance as a bzr
 
23
plugin), bzrlib's global state is already available for use.
 
24
 
 
25
From outside bzr
 
26
================
 
27
 
 
28
To use bzrlib outside of ``bzr`` some global state needs to be setup.
 
29
bzrlib needs ways to handle user input, passwords, a place to emit
 
30
progress bars, logging setup appropriately for your program. The easiest
 
31
way to set all this up in the same fashion ``bzr`` does is to call
 
32
``bzrlib.initialize``. This returns a context manager within which bzrlib
 
33
functions will work correctly. See the pydoc for ``bzrlib.initialize`` for
 
34
more information. In Python 2.4 the ``with`` keyword is not supported and
 
35
so you need to use the context manager manually::
 
36
 
 
37
  # This sets up your ~/.bzr.log, ui factory and so on and so forth. It is
 
38
  # not safe to use as a doctest.
 
39
  library_state = bzrlib.initialize()
 
40
  library_state.__enter__()
 
41
  try:
 
42
      pass
 
43
      # do stuff here
 
44
  finally:
 
45
      library_state.__exit__(None, None, None)
 
46
 
 
47
 
16
48
Core classes
17
49
############
18
50
 
115
147
revision data that can be pointed to by various branches:
116
148
 
117
149
 * Maintains storage of various history data at a URL:
 
150
 
118
151
   * Revisions (Must have a matching inventory)
119
152
   * Digital Signatures
120
153
   * Inventories for each Revision. (Must have all the file texts available).