1
1
/* ESTIMATES ARE VERY ROUGH APPROXIMATIONS */
2
2
strict digraph performance {
4
3
/* completed node list */
6
5
add_analysis[label="Work required analysis for add"];
7
annotate_analysis[label="Work required analysis for annotate"];
8
6
branch_analysis[label="Work required analysis for branch"];
9
7
bundle_analysis[label="Work required analysis for creating a bundle"];
10
commit_analysis[label="Work required analysis for commit"];
11
fetch_analysis[label="Work required analysis for push/pull"];
12
gc_analysis[label="Work required analysis for gc"];
13
missing_analysis[label="Work required analysis for missing"];
14
revert_analysis[label="Work required analysis for revert"];
15
revert_path_analysis[label="Work required analysis for revert of selected paths"];
16
status_analysis[label="Work required analysis for status"];
17
uncommit_analysis[label="Work required analysis for uncommit"];
18
8
wt_disk_order[label="Working Tree disk ordering\n6-8 weeks"];
19
iter_merge[label="iter_changes based merge\n2 days"];
20
diff_analysis[label="Work required analysis for diff"];
22
10
/* uncompleted node list - add new tasks here */
23
11
node[color="blue"];
12
annotate_analysis[label="Work required analysis for annotate"];
13
status_analysis[label="Work required analysis for status"];
14
commit_analysis[label="Work required analysis for commit"];
15
fetch_analysis[label="Work required analysis for push/pull"];
24
16
log_analysis[label="Work required analysis for log"];
25
17
log_path_analysis[label="Work required analysis for log of selected paths."];
18
diff_analysis[label="Work required analysis for diff"];
26
19
diff_path_analysis[label="Work required analysis for diff of selected paths"];
20
revert_analysis[label="Work required analysis for revert"];
21
revert_path_analysis[label="Work required analysis for revert of selected paths"];
27
22
merge_analysis[label="Work required analysis for merge"];
23
uncommit_analysis[label="Work required analysis for uncommit"];
24
missing_analysis[label="Work required analysis for missing"];
28
25
update_analysis[label="Work required analysis for update"];
29
26
cbranch_analysis[label="Work required analysis for cbranch"];
38
35
log_api_stack[label="Targeted API stack for log"];
39
36
log_path_api_stack[label="Targeted API stack for log of selected paths."];
40
37
diff_api_stack[label="Targeted API stack for diff"];
41
gc_api_stack[label="Targeted API stack for gc"];
42
38
revert_api_stack[label="Targeted API stack for revert"];
43
39
revert_path_api_stack[label="Targeted API stack for revert of selected paths"];
44
40
merge_api_stack[label="Targeted API stack for merge"];
54
50
xdelta_imp[label="Xdelta implementation\n1 week"];
55
51
q_splitting[label="Question radix directory splitting\n2 weeks"];
56
52
i_splitting[label="Inventory storage changed to answer what-changed quickly\n6-8 weeks"]
57
per_file_graph[label="Provide an API for per-file\n graph data rather than\n physical storage coupled knits api.\n1 days"];
53
per_file_graph[label="Provide an API for per-file graph data rather than physical storage coupled knits api.\n1 days"];
58
54
deprecate_versionedfile_api[label="Deprecate the public API for access to physical knit storage."];
59
55
anno_cache[label="Annotations become a cache:\n logically separate data\n2 weeks"]
60
56
anno_regen[label="Annotation regeneration\n"];
63
59
repo_disk_order[label="Repository disk ordering\n1 month"];
64
60
pack_repository[label="Pack based repository format"];
65
61
graph_api[label="Network-efficient revision-graph API\n3 week"];
62
iter_merge[label="iter_changes based merge\n2 days"];
66
63
validators[label="Build new validators for revisions and trees."];
68
65
/* under discussion/optional */
118
114
merge_analysis -> merge_api_stack -> iter_merge -> i_splitting;
119
115
merge_api_stack -> memory_copies;
120
116
missing_analysis -> missing_api_stack -> repository_stacking;
121
missing_api_stack -> graph_api;
122
117
new_container -> pack_repository;
123
118
pack_repository -> xdelta_imp;
124
119
pack_repository -> repo_disk_order;