/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/annotate.txt

  • Committer: Adeodato Simó
  • Date: 2007-07-18 15:51:52 UTC
  • mto: (2639.1.1 jam-integration)
  • mto: This revision was merged to the branch mainline in revision 2640.
  • Revision ID: dato@net.com.org.es-20070718155152-pv6rwq41eckqyxem
New EmailMessage class, façade around email.Message and MIMEMultipart.

* bzrlib/email_message.py,
  bzrlib/tests/test_email_message.py:
  New files.

* bzrlib/tests/__init__.py:
  (test_suite): add bzrlib.tests.test_email_message.

* bzrlib/merge_directive.py:
  (MergeDirective.to_email): Use EmailMessage instead of email.Message.

* bzrlib/tests/test_merge_directive.py,
  bzrlib/tests/blackbox/test_merge_directive.py:
  (__main__): adjust EMAIL1 and EMAIL2 strings to how EmailMessage
  formats itself.

* bzrlib/smtp_connection.py:
  (SMTPConnection.get_message_addresses): do not use methods present in
  email.Message but not in EmailMessage (get_all). Use get() instead of
  __getitem__ to make explicit that None is returned if the header does
  not exist.

* bzrlib/tests/test_smtp_connection.py:
  (TestSMTPConnection.test_get_message_addresses, 
   TestSMTPConnection.test_destination_address_required): test the
   functions against EmailMessage in addition to email.Message.

* NEWS:
  Mention EmailMessage in INTERNALS.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Annotate
 
2
========
 
3
 
 
4
Broadly tries to ascribe parts of the tree state to individual commits.
 
5
 
 
6
There appear to be three basic ways of generating annotations:
 
7
 
 
8
If the annotation works by asking the storage layer for successive full texts
 
9
then the scaling of this will be proportional to the time to diff throughout
 
10
the history of thing being annotated.
 
11
 
 
12
If the annotation works by asking the storage layer for successive deltas
 
13
within the history of the thing being annotated we believe we can make it scale
 
14
broadly proportional to the depth of the tree of revisions of the annotated
 
15
object.
 
16
 
 
17
If the annotation works by combining cached annotations such that creating a
 
18
full text recreates annotations for it then it will scale with the cost of
 
19
obtaining that text.
 
20
 
 
21
Generally we want our current annotations but it would be nice to be able to do
 
22
whitespace annotations and potentially other diff based annotations.
 
23
 
 
24
Some things to think about:
 
25
 
 
26
 * Perhaps multiparent deltas would allow us to not store the cached
 
27
   annotations in each delta without losing performance or accuracy.
 
28