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