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] >