/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/bundle-creation.txt

  • Committer: Vincent Ladeuil
  • Date: 2010-01-25 15:55:48 UTC
  • mto: (4985.1.4 add-attr-cleanup)
  • mto: This revision was merged to the branch mainline in revision 4988.
  • Revision ID: v.ladeuil+lp@free.fr-20100125155548-0l352pujvt5bzl5e
Deploy addAttrCleanup on the whole test suite.

Several use case worth mentioning:

- setting a module or any other object attribute is the majority
by far. In some cases the setting itself is deferred but most of
the time we want to set at the same time we add the cleanup.

- there multiple occurrences of protecting hooks or ui factory
which are now useless (the test framework takes care of that now),

- there was some lambda uses that can now be avoided.

That first cleanup already simplifies things a lot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Bundle Creation
 
2
===============
 
3
1. Find common ancestor [O(a)] **O(b)**
 
4
2. Emit bundle [O(a)] **O(b) O(h)**
 
5
 
 
6
  Per revision
 
7
 
 
8
  1. emit metadata O(1)
 
9
  2. emit changes for files
 
10
 
 
11
    1. find changed files [O(c)] **O(f)**
 
12
    2. emit file metadata O(d)
 
13
    3. emit diff [O(e * e) * O(f) + O(h)] **O(i)**
 
14
    4. base64 encode O(g)
 
15
 
 
16
3. **emit overal diff (or maybe do interdiff) O(e * e) * O(f)**
 
17
 
 
18
:a: nodes in revision graph
 
19
:b: number of descendants of common ancestor
 
20
:c: number of files in the tree
 
21
:d: length of metadata
 
22
:e: number of lines
 
23
:f: number of modified files
 
24
:g: length of diff
 
25
:h: nodes in knit graph of modified files
 
26
:i: length of stored diff
 
27
 
 
28
Needs
 
29
-----
 
30
- Improved common ancestor algorithm
 
31
- Access to partial revision graph proportional to relevant revisions
 
32
- Access to changed files proportional to number of change files and
 
33
  intervening revisions
 
34
- Use knit deltas without recomputing
 
35
- Access to knit deltas in O(1) time
 
36
- Access to snapshots in O(1) amortized time
 
37
- All snapshots must have knit deltas