commit-graph: update design document
The commit-graph feature is now integrated with 'fsck' and 'gc', so remove those items from the "Future Work" section of the commit-graph design document. Also remove the section on lazy-loading trees, as that was completed in an earlier patch series. Signed-off-by: Derrick Stolee <dstolee@microsoft.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Derrick Stolee committed
Jun 27, 2018 at 09:24 UTC
d4f65b8d141e041eb5e558cd9e763873e29863b9
1 file changed
-22
Documentation/technical/commit-graph.txt
-22
@@ -118,9 +118,6 @@ Future Work
118
- The commit graph feature currently does not honor commit grafts. This can
119
be remedied by duplicating or refactoring the current graft logic.
120
121
-- The 'commit-graph' subcommand does not have a "verify" mode that is
122
- necessary for integration with fsck.
123
-
121
- After computing and storing generation numbers, we must make graph
122
walks aware of generation numbers to gain the performance benefits they
123
enable. This will mostly be accomplished by swapping a commit-date-ordered
@@ -130,25 +127,6 @@ Future Work
127
- 'log --topo-order'
128
- 'tag --merged'
129
133
-- Currently, parse_commit_gently() requires filling in the root tree
134
- object for a commit. This passes through lookup_tree() and consequently
135
- lookup_object(). Also, it calls lookup_commit() when loading the parents.
136
- These method calls check the ODB for object existence, even if the
137
- consumer does not need the content. For example, we do not need the
138
- tree contents when computing merge bases. Now that commit parsing is
139
- removed from the computation time, these lookup operations are the
140
- slowest operations keeping graph walks from being fast. Consider
141
- loading these objects without verifying their existence in the ODB and
142
- only loading them fully when consumers need them. Consider a method
143
- such as "ensure_tree_loaded(commit)" that fully loads a tree before
144
- using commit->tree.
145
-
146
-- The current design uses the 'commit-graph' subcommand to generate the graph.
147
- When this feature stabilizes enough to recommend to most users, we should
148
- add automatic graph writes to common operations that create many commits.
149
- For example, one could compute a graph on 'clone', 'fetch', or 'repack'
150
- commands.
151
-
130
- A server could provide a commit graph file as part of the network protocol
131
to avoid extra calculations by clients. This feature is only of benefit if
132
the user is willing to trust the file, because verifying the file is correct