/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: John Arbash Meinel
  • Date: 2010-01-12 22:51:31 UTC
  • mto: This revision was merged to the branch mainline in revision 4955.
  • Revision ID: john@arbash-meinel.com-20100112225131-he8h411p6aeeb947
Delay grabbing an output stream until we actually go to show a diff.

This makes the test suite happy, but it also seems to be reasonable.
If we aren't going to write anything, we don't need to hold an
output stream open.

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