/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/merge-scaling.txt

  • Committer: John Arbash Meinel
  • Date: 2008-11-25 18:51:48 UTC
  • mto: This revision was merged to the branch mainline in revision 3854.
  • Revision ID: john@arbash-meinel.com-20081125185148-jsfkqnzfjjqsleds
It seems we have some direct tests that don't use strings and expect a value error as well.

They would be sanitized later on by Revision. We could use that code, but this test
depends on the serializer, which Revision wouldn't know about.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
Scaling analysys of Merge
 
2
=========================
 
3
 
 
4
1. Fetch revisions O(a)
 
5
2. Common Ancestor [O(b)] **O(h)**
 
6
3. Calculate tree merge O(c) [+ O(b) + O(d)] **+ O(i)**
 
7
 
 
8
 - text merge O(e * e * f) + O(b)
 
9
 
 
10
4. Find filesystem conflicts O(c)
 
11
5. Resolve filesystem conflicts O(g)
 
12
6. Apply changes O(c) + O(log(d))
 
13
7. Set pending merges O(1)
 
14
8. Print conflicts O(g)
 
15
9. Print changes O(c)
 
16
 
 
17
:a: revisions missing from repo:
 
18
:b: nodes in the revision graph:
 
19
:c: files that differ between base and other:
 
20
:d: number of files in the tree
 
21
:e: number of lines in the text
 
22
:f: number number of files requiring text merge
 
23
:g: number of conflicts (g <= c)
 
24
:h: humber of uncommon ancestors
 
25
:i: number of revisions between base and other
 
26
 
 
27
Needs
 
28
-----
 
29
- Access to revision graph proportional to number of revisions read
 
30
- Access to changed file metadata proportional to number of changes and number of intervening revisions.
 
31
- O(1) access to fulltexts
 
32
 
 
33
Notes
 
34
-----
 
35
Multiparent deltas may offer some nice properties for performance of annotation based merging.