git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/4] glossary: add commit graph description

From
Philip Oakley <philipoakley@iee.email>
Date
Aug 30, 2022, 14:33 UTC
Message-ID
<70706e55-07b5-5fec-df06-9953e0013a8e@iee.email>
In-Reply-To
<5551bd33-cf95-3201-0a00-23e02ef41de3@iee.email>
On 10/07/2022 22:37, Philip Oakley wrote:
Show 16 quoted lines
> Hi Junio,
>
> On 09/07/2022 22:20, Junio C Hamano wrote:
>> "Philip Oakley via GitGitGadget" <gitgitgadget@gmail.com> writes:
>>
>>> +[[def_commit_graph]]commit graph::
>>> +	The commit-graph file is a supplemental data structure that
>>> +	accelerates commit graph walks. The existing Object Data Base (ODB)
>>> +	is the definitive commit graph. The "commit-graph" file is stored
>>> +	either in the .git/objects/info directory or in the info directory
>>> +	of an alternate object database.
>> While it says nothing technically incorrect, I suspect "The existing
>> object data base is the definitive commit graph" may invite unneeded
>> confusion.
> I probably over-shortened the original text I was summarising
> (technical/commit-graph.txt intro).

I was looking to outline the concept and how, therefore, it is different from the reachability bitmaps, and also from the 'canonical' DAG of Git's commit objects.

I hope to have another go in a couple of weeks time.
Show 33 quoted lines
>> I think you wanted to say that the DAG formed by traversing the
>> pointers recorded in the objects is the authoritative source of
>> truth and the commit-graph file is merely a precomputed cache
> .. of that graph. *nod*
>>  and
>> can be safely lost, 
> I wasn't particularly thinking of that aspect .. Perhaps more that it
> accelerates commit graph walks..
>> but I am not sure the above description conveys
>> that to anybody who does not already know it.
>>
>>     The commits in the object data base form a directed acyclic
>>     graph (DAG) by commits referring to their parent commits.
>>     Pieces of information from individual commit objects that are
>>     needed to traverse the DAG are pre-computed in the commit-graph
>>     file and stored in ...
>>
>> is my attempt---I am not very happy or proud about it, but it may be
>> easier to follow.
> I wanted to keepseparate from the graph file definition, the rather
> fuzzy relationship between the overall ODB (staging area, and loads of
> other stuff), and the way the DAG is generated, which also needs the
> selected refs to start the traverse..
>
> In a wider context, it's not clear to me just how the commit graph file
> content is chosen relative to the full depth DAG from all local refs.
> The reachability bit maps have a similar info gap.
>
> --
> Philip
>
> [sorry for erratic responses - currently isolating with covid]
>
Previous: Philip OakleyNext: Philip Oakley via GitGitGadget
Message 6 of 45 in “Add some Glossary terms, and extra renormalize information.”
  1. 0/4 Add some Glossary terms, and extra renormalize information.Philip Oakley via GitGitGadget, Jul 9, 2022
  2. 1/4 glossary: add Object DataBase (ODB) abbreviationPhilip Oakley via GitGitGadget, Jul 9, 2022
  3. 2/4 glossary: add commit graph descriptionPhilip Oakley via GitGitGadget, Jul 9, 2022
  4. Junio C HamanoJul 9, 2022
  5. Philip OakleyJul 10, 2022
  6. Philip OakleyAug 30, 2022
  7. 3/4 glossary: add reachability bitmap descriptionPhilip Oakley via GitGitGadget, Jul 9, 2022
  8. 4/4 doc add: renormalize is not idempotent for CRCRLFPhilip Oakley via GitGitGadget, Jul 9, 2022
  9. Junio C HamanoJul 9, 2022
  10. Philip OakleyJul 10, 2022
  11. Junio C HamanoJul 10, 2022
  12. Philip OakleyJul 10, 2022
  13. Torsten BögershausenJul 10, 2022
  14. Philip OakleyJul 10, 2022
  15. Junio C HamanoAug 5, 2022
  16. Torsten BögershausenAug 6, 2022
  17. Philip OakleyAug 8, 2022
  18. Junio C HamanoAug 8, 2022
  19. Torsten BögershausenAug 9, 2022
  20. 0/1 .. Add extra renormalize information.Philip Oakley, Aug 10, 2022
  21. 1/1 doc add: renormalize is not idempotent for CRCRLFPhilip Oakley, Aug 10, 2022
  22. Torsten BögershausenAug 10, 2022
  23. Junio C HamanoAug 10, 2022
  24. Junio C HamanoJul 9, 2022
  25. Philip OakleyJul 10, 2022
  26. 0/3 Add some Glossary of terms informationPhilip Oakley, Oct 22, 2022
  27. 2/3 glossary: add "commit graph" descriptionPhilip Oakley, Oct 22, 2022
  28. Derrick StoleeOct 25, 2022
  29. Philip OakleyOct 29, 2022
  30. 3/3 glossary: add reachability bitmap descriptionPhilip Oakley, Oct 22, 2022
  31. Abhradeep ChakrabortyOct 24, 2022
  32. Junio C HamanoOct 24, 2022
  33. Philip OakleyOct 24, 2022
  34. Derrick StoleeOct 25, 2022
  35. Junio C HamanoOct 25, 2022
  36. Philip OakleyOct 29, 2022
  37. 1/3 doc: use 'object database' not ODB or abbreviationPhilip Oakley, Oct 22, 2022
  38. Junio C HamanoOct 23, 2022
  39. 0/4 Add some Glossary of terms informationPhilip Oakley, Oct 29, 2022
  40. 2/4 glossary: add "commit graph" descriptionPhilip Oakley, Oct 29, 2022
  41. 1/4 doc: use 'object database' not ODB or abbreviationPhilip Oakley, Oct 29, 2022
  42. 3/4 glossary: add reachability bitmap descriptionPhilip Oakley, Oct 29, 2022
  43. 4/4 doc: use "commit-graph" hyphenation consistentlyPhilip Oakley, Oct 29, 2022
  44. Taylor BlauOct 29, 2022
  45. Philip OakleyOct 29, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.