Merge branch 'ma/commit-graph-docs' into maint
authorJunio C Hamano <gitster@pobox.com>
Wed, 21 Nov 2018 13:58:00 +0000 (22:58 +0900)
committerJunio C Hamano <gitster@pobox.com>
Wed, 21 Nov 2018 13:58:00 +0000 (22:58 +0900)
Doc update.

* ma/commit-graph-docs:
Doc: refer to the "commit-graph file" with dash
git-commit-graph.txt: refer to "*commit*-graph file"
git-commit-graph.txt: typeset more in monospace
git-commit-graph.txt: fix bullet lists

1  2 
Documentation/technical/commit-graph.txt
index 001395e95071ec50d2fef65ead09cf5c49558a6a,6b7dde011ea316e441214b1403d0744dc6f2f826..7805b0968c828fda1601fe00c2b5b9d9359b38e2
@@@ -15,13 -15,13 +15,13 @@@ There are two main costs here
  1. Decompressing and parsing commits.
  2. Walking the entire graph to satisfy topological order constraints.
  
- The commit graph file is a supplemental data structure that accelerates
+ The commit-graph file is a supplemental data structure that accelerates
  commit graph walks. If a user downgrades or disables the 'core.commitGraph'
  config setting, then the existing ODB is sufficient. The file is stored
  as "commit-graph" either in the .git/objects/info directory or in the info
  directory of an alternate.
  
- The commit graph file stores the commit graph structure along with some
+ The commit-graph file stores the commit graph structure along with some
  extra metadata to speed up graph walks. By listing commit OIDs in lexi-
  cographic order, we can identify an integer position for each commit and
  refer to the parents of a commit using those integer positions. We use
@@@ -103,7 -103,7 +103,7 @@@ that of a parent
  Design Details
  --------------
  
- - The commit graph file is stored in a file named 'commit-graph' in the
+ - The commit-graph file is stored in a file named 'commit-graph' in the
    .git/objects/info directory. This could be stored in the info directory
    of an alternate.
  
  - The file format includes parameters for the object ID hash function,
    so a future change of hash algorithm does not require a change in format.
  
 +- Commit grafts and replace objects can change the shape of the commit
 +  history. The latter can also be enabled/disabled on the fly using
 +  `--no-replace-objects`. This leads to difficultly storing both possible
 +  interpretations of a commit id, especially when computing generation
 +  numbers. The commit-graph will not be read or written when
 +  replace-objects or grafts are present.
 +
 +- Shallow clones create grafts of commits by dropping their parents. This
 +  leads the commit-graph to think those commits have generation number 1.
 +  If and when those commits are made unshallow, those generation numbers
 +  become invalid. Since shallow clones are intended to restrict the commit
 +  history to a very small set of commits, the commit-graph feature is less
 +  helpful for these clones, anyway. The commit-graph will not be read or
 +  written when shallow commits are present.
 +
  Future Work
  -----------
  
 -- The commit graph feature currently does not honor commit grafts. This can
 -  be remedied by duplicating or refactoring the current graft logic.
 -
  - After computing and storing generation numbers, we must make graph
    walks aware of generation numbers to gain the performance benefits they
    enable. This will mostly be accomplished by swapping a commit-date-ordered
      - 'log --topo-order'
      - 'tag --merged'
  
- - A server could provide a commit graph file as part of the network protocol
+ - A server could provide a commit-graph file as part of the network protocol
    to avoid extra calculations by clients. This feature is only of benefit if
    the user is willing to trust the file, because verifying the file is correct
    is as hard as computing it from scratch.