1
/* ESTIMATES ARE VERY ROUGH APPROXIMATIONS */
2
strict digraph performance {
4
/* completed node list */
6
add_analysis[label="Work required analysis for add"];
7
annotate_analysis[label="Work required analysis for annotate"];
8
branch_analysis[label="Work required analysis for branch"];
9
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
revert_analysis[label="Work required analysis for revert"];
14
revert_path_analysis[label="Work required analysis for revert of selected paths"];
15
wt_disk_order[label="Working Tree disk ordering\n6-8 weeks"];
17
/* uncompleted node list - add new tasks here */
19
status_analysis[label="Work required analysis for status"];
20
log_analysis[label="Work required analysis for log"];
21
log_path_analysis[label="Work required analysis for log of selected paths."];
22
diff_analysis[label="Work required analysis for diff"];
23
diff_path_analysis[label="Work required analysis for diff of selected paths"];
24
merge_analysis[label="Work required analysis for merge"];
25
uncommit_analysis[label="Work required analysis for uncommit"];
26
missing_analysis[label="Work required analysis for missing"];
27
update_analysis[label="Work required analysis for update"];
28
cbranch_analysis[label="Work required analysis for cbranch"];
30
add_api_stack[label="Targeted API stack for add"];
31
branch_api_stack[label="Targeted API stack for branch"];
32
bundle_api_stack[label="Targeted API stack for creating a bundle"];
33
annotate_api_stack[label="Targeted API stack for annotate"];
34
status_api_stack[label="Targeted API stack for status"];
35
commit_api_stack[label="Targeted API stack for commit"];
36
fetch_api_stack[label="Targeted API stack for push/pull"];
37
log_api_stack[label="Targeted API stack for log"];
38
log_path_api_stack[label="Targeted API stack for log of selected paths."];
39
diff_api_stack[label="Targeted API stack for diff"];
40
gc_api_stack[label="Targeted API stack for gc"];
41
revert_api_stack[label="Targeted API stack for revert"];
42
revert_path_api_stack[label="Targeted API stack for revert of selected paths"];
43
merge_api_stack[label="Targeted API stack for merge"];
44
uncommit_api_stack[label="Targeted API stack for uncommit"];
45
missing_api_stack[label="Targeted API stack for missing"];
46
update_api_stack[label="Targeted API stack for update"];
47
cbranch_api_stack[label="Targeted API stack for cbranch"];
49
data_collation[label="Stream API for inserting/obtaining revision data.\n1 month"];
50
repository_stacking[label="Repository stacking API\n2 months"];
51
new_container[label="New container format\n2 weeks"]
52
xdelta[label="Xdelta sanity/learning\n2 weeks"];
53
xdelta_imp[label="Xdelta implementation\n1 week"];
54
q_splitting[label="Question radix directory splitting\n2 weeks"];
55
i_splitting[label="Inventory storage changed to answer what-changed quickly\n6-8 weeks"]
56
per_file_graph[label="Provide an API for per-file graph data rather than physical storage coupled knits api.\n1 days"];
57
deprecate_versionedfile_api[label="Deprecate the public API for access to physical knit storage."];
58
anno_cache[label="Annotations become a cache:\n logically separate data\n2 weeks"]
59
anno_regen[label="Annotation regeneration\n"];
60
anno_kinds[label="Different styles of annotation"];
61
memory_copies[label="Stop requiring full memory copies of files"];
62
repo_disk_order[label="Repository disk ordering\n1 month"];
63
pack_repository[label="Pack based repository format"];
64
graph_api[label="Network-efficient revision-graph API\n3 week"];
65
iter_merge[label="iter_changes based merge\n2 days"];
66
validators[label="Build new validators for revisions and trees."];
68
/* under discussion/optional */
70
hash_names[label="Use hashes as names for some objects\n(to reduce tracking metadata and ease interoperability."];
71
gdfo_api[label="GDFO API\n1 day"];
72
gdfo_cache[label="GDFO Cache\n1 week"];
73
gdfo_usage[label="GDFO Usage\n3 days"];
76
gc_analysis -> gc_api_stack;
77
gdfo_api -> gdfo_cache;
78
gdfo_api -> gdfo_usage;
80
q_splitting -> i_splitting;
81
per_file_graph -> deprecate_versionedfile_api;
82
anno_regen -> anno_kinds;
83
anno_cache -> anno_regen;
84
add_analysis -> add_api_stack;
85
annotate_analysis -> annotate_api_stack -> anno_cache;
86
annotate_api_stack -> per_file_graph -> graph_api;
87
annotate_api_stack -> memory_copies;
88
annotate_api_stack -> hash_names;
89
branch_analysis -> branch_api_stack -> repository_stacking;
90
branch_api_stack -> memory_copies;
91
bundle_analysis -> bundle_api_stack -> data_collation;
92
bundle_api_stack -> repository_stacking;
93
bundle_api_stack -> validators;
94
bundle_api_stack -> graph_api;
95
bundle_api_stack -> memory_copies;
96
bundle_api_stack -> new_container;
97
bundle_analysis -> hash_names;
98
cbranch_analysis -> cbranch_api_stack;
99
commit_analysis -> commit_api_stack -> data_collation;
100
commit_api_stack -> per_file_graph;
101
commit_api_stack -> validators;
102
commit_api_stack -> memory_copies;
103
commit_api_stack -> hash_names;
104
diff_analysis -> diff_api_stack;
105
diff_api_stack -> memory_copies;
106
diff_path_analysis -> diff_api_stack -> i_splitting;
107
diff_api_stack -> hash_names;
108
fetch_analysis -> fetch_api_stack -> data_collation;
109
fetch_api_stack -> repository_stacking;
110
fetch_api_stack -> graph_api;
111
fetch_api_stack -> memory_copies;
112
fetch_api_stack -> hash_names;
113
repository_stacking -> graph_api;
114
hash_names -> i_splitting;
115
log_analysis -> log_api_stack -> i_splitting;
116
log_path_analysis -> log_path_api_stack;
117
log_path_api_stack -> per_file_graph;
118
merge_analysis -> merge_api_stack -> iter_merge -> i_splitting;
119
merge_api_stack -> memory_copies;
120
missing_analysis -> missing_api_stack -> repository_stacking;
121
new_container -> pack_repository;
122
pack_repository -> xdelta_imp;
123
pack_repository -> repo_disk_order;
124
per_file_graph -> hash_names;
125
repository_stacking -> pack_repository;
126
repository_stacking -> new_container;
127
revert_analysis -> revert_api_stack -> data_collation;
128
revert_path_analysis -> revert_path_api_stack;
129
revert_api_stack -> memory_copies;
130
status_analysis -> status_api_stack;
131
status_api_stack -> memory_copies;
132
uncommit_analysis -> uncommit_api_stack -> data_collation;
133
uncommit_api_stack -> graph_api;
134
update_analysis -> update_api_stack;
135
update_api_stack -> memory_copies;