/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/developers/revision-properties.txt

  • Committer: John Arbash Meinel
  • Date: 2009-10-17 04:43:14 UTC
  • mto: This revision was merged to the branch mainline in revision 4756.
  • Revision ID: john@arbash-meinel.com-20091017044314-nlvrrqnz0f2wzcp4
change the GroupcompressBlock code a bit.
If the first decompress request is big enough, just decompress everything.
And when we do that, let go of the decompressobj.

After digging through the zlib code, it looks like 1 zlib stream object
contains a 5kB internal state, and another 4*64kB buffers. (about 260kB
of total state.)
That turns out to be quite a lot if you think about it.


In the case of branching a copy of 'bzr.dev' locally, this turned out
to be 383MB w/ bzr.dev and 345MB w/ only this patch. (So ~11% of peak).

Also, this was 'unreferenced' memory, because it is hidden in the
zlib internal state in working buffers. So it wasn't memory that Meliae
could find. \o/.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Revision Properties
 
2
===================
 
3
 
 
4
Bazaar repositories support setting of a key/value pairs for each revision.
 
5
Applications can use these properties to store additional information
 
6
about the revision.
 
7
 
 
8
Usage
 
9
-----
 
10
 
 
11
In general, revision properties are set by passing keyword argument
 
12
``revprops`` to method ``MutableTree.commit``. For example::
 
13
 
 
14
 properties = {}
 
15
 properties['my-property'] = 'test'
 
16
 tree.commit(message, revprops=properties)
 
17
 
 
18
Properties can be retrieved via the attribute ``properties`` of
 
19
instances of the class ``Revision``::
 
20
 
 
21
 if 'my-property' in revision.properties:
 
22
     my_property = revision.properties['my-property']
 
23
     ...
 
24
 
 
25
Well-known properties
 
26
---------------------
 
27
 
 
28
At the moment, three standardized revision properties are recognized and used
 
29
by bzrlib:
 
30
 
 
31
 * ``authors`` - Authors of the change. This value is a "\n" separated set
 
32
   of values in the same format as the committer-id. This property can be
 
33
   set by passing a list to the keyword argument ``authors`` of the function
 
34
   ``MutableTree.commit``.
 
35
 * ``author`` - Single author of the change. This property is deprecated in
 
36
   favour of ``authors``. It should no longer be set by any code, but will
 
37
   still be read. It is ignored if ``authors`` is set in the same revision.
 
38
 * ``branch-nick`` - Nickname of the branch. It's either the directory name
 
39
   or manually set by ``bzr nick``. The value is set automatically in
 
40
   ``MutableTree.commit``.
 
41
 * ``bugs`` - A list of bug URLs and their statuses. The list is separated
 
42
   by the new-line character (\n) and each entry is in format
 
43
   '<URL> <status>'. Currently, bzrlib uses only status 'fixed'. See
 
44
   `Bug Trackers`_ for more details about using this feature.
 
45
 
 
46
.. _Bug Trackers: ../en/user-guide/index.html#bug-trackers