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