{"thread":{"id":"66198","subject":"[PATCH 0/4] doc: advertize gitdatamodel(1)","startedAt":"2026-08-20T18:55:53Z","lastAt":"2026-09-05T17:30:15Z","messageCount":23,"participants":["kristofferhaugsbakk@fastmail.com","Patrick Steinhardt","Kristoffer Haugsbakk","Julia Evans"],"isPatch":true,"patchVersion":1,"patchTotal":4},"messages":[{"id":"550933","messageId":"CV_doc_datamodel_advertize.bea@msgid.xyz","threadId":"66198","inReplyTo":null,"subject":"[PATCH 0/4] doc: advertize gitdatamodel(1)","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-08-20T18:55:20Z","receivedAt":"2026-08-20T18:55:53Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\nTopic name: kh/doc-datamodel-advertize\n\nTopic summary: gitdatamodel(7) is not linked to from anywhere. Let’s\nmention it on other documentation pages and add a link to the glossary on\nthe datamodel page.\n\n§ Testing\n\nOther than the usual documentation testing, I was unsure if this would trip\nany tests in the t/ directory which tests what output you get from `git\nhelp --guides` or whatever else. So I merged today’s `seen` in in addition\nto this topic and ran `cd t && make test`.\n\n[1/4] doc: git: list gitdatamodel(7) as a concept guide\n[2/4] doc: git: link to the gitdatamodel(7) tutorial\n[3/4] doc: glossary: link four of the terms to gitdatamodel(7)\n[4/4] doc: datamodel: link to the glossary\n\n Documentation/git.adoc              | 12 ++++++++----\n Documentation/gitdatamodel.adoc     |  6 ++++++\n Documentation/gitglossary.adoc      |  1 +\n Documentation/glossary-content.adoc | 13 ++++++++++---\n command-list.txt                    |  1 +\n 5 files changed, 26 insertions(+), 7 deletions(-)\n\n\nbase-commit: e9019fcafe0040228b8631c30f97ae1adb61bcdc\n-- \n2.55.0.13.g85d2d65e389\n\n"},{"id":"550934","messageId":"git_help_--guide_datam.beb@msgid.xyz","threadId":"66198","inReplyTo":"CV_doc_datamodel_advertize.bea@msgid.xyz","subject":"[PATCH 1/4] doc: git: list gitdatamodel(7) as a concept guide","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-08-20T18:55:21Z","receivedAt":"2026-08-20T18:56:11Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\ndee80940 (doc: add an explanation of Git's data model, 2025-11-12) added\ngitdatamodel(7), documenting Git’s data model. But it is not mentioned\neverywhere.\n\nLet’s start by listing it under Guides in git(1) and with `git help\n--guides`.\n\nSigned-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n---\n command-list.txt | 1 +\n 1 file changed, 1 insertion(+)\n\ndiff --git a/command-list.txt b/command-list.txt\nindex 21b802c4202..63ae2a67c94 100644\n--- a/command-list.txt\n+++ b/command-list.txt\n@@ -217,6 +217,7 @@ gitcli                                  userinterfaces\n gitcore-tutorial                        guide\n gitcredentials                          guide\n gitcvs-migration                        guide\n+gitdatamodel                            guide\n gitdiffcore                             guide\n giteveryday                             guide\n gitfaq                                  guide\n-- \n2.55.0.13.g85d2d65e389\n\n"},{"id":"550935","messageId":"git_to_datam.bec@msgid.xyz","threadId":"66198","inReplyTo":"CV_doc_datamodel_advertize.bea@msgid.xyz","subject":"[PATCH 2/4] doc: git: link to the gitdatamodel(7) tutorial","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-08-20T18:55:22Z","receivedAt":"2026-08-20T18:56:28Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\nThe previous commit added the first mention of gitdatamodel(1) on\nanother page, namely in git(1). But there are also other places where\na mention is relevant.\n\nLet’s mention it:\n\n• under Description, since it as useful as the other tutorials already\n  mentioned there for those who are interested;\n• under Terminology, since it complements gitglossary(7) as a\n  pedagogical rather than reference source for the core terms;[1] and\n• under See Also, since the other tutorials (plus the user manual) are\n  mentioned there.\n\nWe don’t need to mention it under Further Documentation since we now\nmention it under Description.\n\n† 1: See dee80940 (doc: add an explanation of Git's data model,\n     2025-11-12):\n\n          `gitglossary`. This makes a good effort, but it's an\n          alphabetically ordered dictionary and a dictionary is not a\n          good way to learn concepts. You have to jump around too much\n          and it's not possible to present the concepts in the order\n          that they should be explained.\n\nSigned-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n---\n\nNotes (series):\n    I have used double spacing for sentences since that seemed to what was\n    already in use.\n\n Documentation/git.adoc | 12 ++++++++----\n 1 file changed, 8 insertions(+), 4 deletions(-)\n\ndiff --git a/Documentation/git.adoc b/Documentation/git.adoc\nindex 8a5cdd3b3d2..6f0075f9188 100644\n--- a/Documentation/git.adoc\n+++ b/Documentation/git.adoc\n@@ -25,7 +25,8 @@ and full access to internals.\n See linkgit:gittutorial[7] to get started, then see\n linkgit:giteveryday[7] for a useful minimum set of\n commands.  The link:user-manual.html[Git User's Manual] has a more\n-in-depth introduction.\n+in-depth introduction.  See linkgit:gitdatamodel[7] if you want to\n+learn about the data model and important terminology.\n \n After you mastered the basic concepts, you can come back to this\n page to learn what commands Git offers.  You can learn more about\n@@ -469,7 +470,9 @@ Higher level SCMs may provide and manage additional information in the\n \n Terminology\n -----------\n-Please see linkgit:gitglossary[7].\n+Please see linkgit:gitglossary[7].  See linkgit:gitdatamodel[7] for a\n+discussion of the core data model, which includes important terminology\n+used throughout the documentation.\n \n \n Environment Variables\n@@ -1199,8 +1202,9 @@ SEE ALSO\n --------\n linkgit:gittutorial[7], linkgit:gittutorial-2[7],\n linkgit:giteveryday[7], linkgit:gitcvs-migration[7],\n-linkgit:gitglossary[7], linkgit:gitcore-tutorial[7],\n-linkgit:gitcli[7], link:user-manual.html[The Git User's Manual],\n+linkgit:gitglossary[7], linkgit:gitdatamodel[7],\n+linkgit:gitcore-tutorial[7], linkgit:gitcli[7],\n+link:user-manual.html[The Git User's Manual],\n linkgit:gitworkflows[7]\n \n GIT\n-- \n2.55.0.13.g85d2d65e389\n\n"},{"id":"550936","messageId":"glossary_4_terms_datam.bed@msgid.xyz","threadId":"66198","inReplyTo":"CV_doc_datamodel_advertize.bea@msgid.xyz","subject":"[PATCH 3/4] doc: glossary: link four of the terms to gitdatamodel(7)","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-08-20T18:55:23Z","receivedAt":"2026-08-20T18:56:47Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\nFour of the terms in the glossary are discussed in gitdatamodel(7).\nLet’s link to the data model page from the glossary.\n\nThe phrasing needs to be tweaked based on what gitdatamodel(7) offers\nfor each term compared to the glossary, or even other pages (see the\ngit-reflog(1) mention). For instance, the ref/reference discussion can\nbe called a “see also” since the glossary here already goes into\ndetail. On the other hand, gitdatamodel(7) offers more details on\nthe subject of “the index”.\n\nLet’s also add gitdatamodel(7) to See Also. It is at least as relevant\nas the other tutorial pages that are already mentioned.\n\nSigned-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n---\n Documentation/gitglossary.adoc      |  1 +\n Documentation/glossary-content.adoc | 13 ++++++++++---\n 2 files changed, 11 insertions(+), 3 deletions(-)\n\ndiff --git a/Documentation/gitglossary.adoc b/Documentation/gitglossary.adoc\nindex 0e85be48470..b046d9cb293 100644\n--- a/Documentation/gitglossary.adoc\n+++ b/Documentation/gitglossary.adoc\n@@ -16,6 +16,7 @@ include::glossary-content.adoc[]\n \n SEE ALSO\n --------\n+linkgit:gitdatamodel[7],\n linkgit:gittutorial[7],\n linkgit:gittutorial-2[7],\n linkgit:gitcvs-migration[7],\ndiff --git a/Documentation/glossary-content.adoc b/Documentation/glossary-content.adoc\nindex 8c4e9dd3bee..52301a56dda 100644\n--- a/Documentation/glossary-content.adoc\n+++ b/Documentation/glossary-content.adoc\n@@ -251,7 +251,8 @@ for a more flexible and robust system to do the same thing.\n \tas objects. The index is a stored version of your\n \t<<def_working_tree,working tree>>. Truth be told, it can also contain a second, and even\n \ta third version of a working tree, which are used\n-\twhen <<def_merge,merging>>.\n+\twhen <<def_merge,merging>>. See \"THE INDEX\" in\n+\tlinkgit:gitdatamodel[7] for details.\n \n [[def_index_entry]]index entry::\n \tThe information regarding a particular file, stored in the\n@@ -290,7 +291,8 @@ This commit is referred to as a \"merge commit\", or sometimes just a\n [[def_object]]object::\n \tThe unit of storage in Git. It is uniquely identified by the\n \t<<def_SHA1,SHA-1>> of its contents. Consequently, an\n-\tobject cannot be changed.\n+\tobject cannot be changed. See \"OBJECTS\" in\n+\tlinkgit:gitdatamodel[7] for details.\n \n [[def_object_database]]object database::\n \tStores a set of \"objects\", and an individual <<def_object,object>> is\n@@ -587,12 +589,17 @@ extended in the future:\n Different subhierarchies are used for different purposes. For example,\n the `refs/heads/` hierarchy is used to represent local branches whereas\n the `refs/tags/` hierarchy is used to represent local tags..\n++\n+See also \"REFERENCES\" in linkgit:gitdatamodel[7].\n \n [[def_reflog]]reflog::\n \tA reflog shows the local \"history\" of a ref.  In other words,\n \tit can tell you what the 3rd last revision in _this_ repository\n \twas, and what was the current state in _this_ repository,\n-\tyesterday 9:14pm.  See linkgit:git-reflog[1] for details.\n+\tyesterday 9:14pm.\n++\n+See \"REFLOGS\" in linkgit:gitdatamodel[7] for a short explanation of the\n+format. See linkgit:git-reflog[1] for details.\n \n [[def_refspec]]refspec::\n \tA \"refspec\" is used by <<def_fetch,fetch>> and\n-- \n2.55.0.13.g85d2d65e389\n\n"},{"id":"550937","messageId":"datam_to_glossary.bee@msgid.xyz","threadId":"66198","inReplyTo":"CV_doc_datamodel_advertize.bea@msgid.xyz","subject":"[PATCH 4/4] doc: datamodel: link to the glossary","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-08-20T18:55:24Z","receivedAt":"2026-08-20T18:57:06Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\nWe linked from the glossary to the data model page in the last commit.\nIt can also be useful to link the other way for readers who might want\nto reference more terminology.\n\nSigned-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n---\n\nNotes (series):\n    But: maybe the See Also link is enough here?\n    \n    > a comprehensive terminology reference\n    \n    This is descriptive or aspirational. Either works.\n\n Documentation/gitdatamodel.adoc | 6 ++++++\n 1 file changed, 6 insertions(+)\n\ndiff --git a/Documentation/gitdatamodel.adoc b/Documentation/gitdatamodel.adoc\nindex dcfdff0346f..d588630e633 100644\n--- a/Documentation/gitdatamodel.adoc\n+++ b/Documentation/gitdatamodel.adoc\n@@ -24,6 +24,8 @@ Git's core operations use 4 kinds of data:\n 3. <<index,The index>>, also known as the staging area\n 4. <<reflogs,Reflogs>>: logs of changes to references (\"ref log\")\n \n+See linkgit:gitglossary[7] for a comprehensive terminology reference.\n+\n [[objects]]\n OBJECTS\n -------\n@@ -300,6 +302,10 @@ $ git reflog main --date=iso --no-decorate\n 4ccb6d7 main@{2025-09-29 15:16:48 -0400}: commit (initial): Initial commit\n ----\n \n+SEE ALSO\n+--------\n+linkgit:gitglossary[7]\n+\n GIT\n ---\n Part of the linkgit:git[1] suite\n-- \n2.55.0.13.g85d2d65e389\n\n"},{"id":"551004","messageId":"aohDEKEs82MaWECV@pks.im","threadId":"66198","inReplyTo":"git_help_--guide_datam.beb@msgid.xyz","subject":"Re: [PATCH 1/4] doc: git: list gitdatamodel(7) as a concept guide","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-08-21T12:22:40Z","receivedAt":"2026-08-21T12:22:48Z","isPatch":true,"body":"On Thu, Aug 20, 2026 at 08:55:21PM +0200, kristofferhaugsbakk@fastmail.com wrote:\n> From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n> \n> dee80940 (doc: add an explanation of Git's data model, 2025-11-12) added\n> gitdatamodel(7), documenting Git’s data model. But it is not mentioned\n> everywhere.\n\nNit: s/everywhere/anywhere?\n\n> diff --git a/command-list.txt b/command-list.txt\n> index 21b802c4202..63ae2a67c94 100644\n> --- a/command-list.txt\n> +++ b/command-list.txt\n> @@ -217,6 +217,7 @@ gitcli                                  userinterfaces\n>  gitcore-tutorial                        guide\n>  gitcredentials                          guide\n>  gitcvs-migration                        guide\n> +gitdatamodel                            guide\n>  gitdiffcore                             guide\n>  giteveryday                             guide\n>  gitfaq                                  guide\n\nMakes sense.\n\nPatrick\n"},{"id":"551005","messageId":"aohDFdjPU0t2d9_8@pks.im","threadId":"66198","inReplyTo":"git_to_datam.bec@msgid.xyz","subject":"Re: [PATCH 2/4] doc: git: link to the gitdatamodel(7) tutorial","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-08-21T12:22:45Z","receivedAt":"2026-08-21T12:22:50Z","isPatch":true,"body":"On Thu, Aug 20, 2026 at 08:55:22PM +0200, kristofferhaugsbakk@fastmail.com wrote:\n> From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n> \n> The previous commit added the first mention of gitdatamodel(1) on\n\nIt's gitdatamodel(7), not (1).\n\n> another page, namely in git(1). But there are also other places where\n> a mention is relevant.\n> \n> Let’s mention it:\n> \n> • under Description, since it as useful as the other tutorials already\n\nMissing an \"is\"? -> \"since it is as useful as the other\"\n\nPatrick\n"},{"id":"551015","messageId":"9f016c44-2236-4da4-8ef2-f8e0cc99bb96@app.fastmail.com","threadId":"66198","inReplyTo":"aohDFdjPU0t2d9_8@pks.im","subject":"Re: [PATCH 2/4] doc: git: link to the gitdatamodel(7) tutorial","fromName":"Kristoffer Haugsbakk","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-08-21T13:16:10Z","receivedAt":"2026-08-21T13:16:42Z","isPatch":true,"body":"On Fri, Aug 21, 2026, at 14:22, Patrick Steinhardt wrote:\n> On Thu, Aug 20, 2026 at 08:55:22PM +0200,\n> kristofferhaugsbakk@fastmail.com wrote:\n>> From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n>>\n>> The previous commit added the first mention of gitdatamodel(1) on\n>\n> It's gitdatamodel(7), not (1).\n>\n>> another page, namely in git(1). But there are also other places where\n>> a mention is relevant.\n>>\n>> Let’s mention it:\n>>\n>> • under Description, since it as useful as the other tutorials already\n>\n> Missing an \"is\"? -> \"since it is as useful as the other\"\n\nYes, all your input on this series is correct. I’ll make the\nadjustments. Thanks for the careful read.\n"},{"id":"551064","messageId":"V2_CV_doc_datamodel_advertize.c20@msgid.xyz","threadId":"66198","inReplyTo":"CV_doc_datamodel_advertize.bea@msgid.xyz","subject":"[PATCH v2 0/4] doc: advertize gitdatamodel(1)","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-08-23T11:32:45Z","receivedAt":"2026-08-23T11:33:04Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\nTopic name (applied): kh/doc-datamodel\n\nTopic summary: gitdatamodel(7) is not linked to from anywhere. Let’s\nmention it on other documentation pages and add a link to the glossary on\nthe data model page.\n\n§ Testing\n\nTesting done on v1. No tests done for v2.\n\n§ Changes in v2\n\nThanks to Patrick for reviewing the first round.\n\nCorrect commit messages for:\n\n• Patch 1/4, “list gitdatamodel(7) as a concept guide”\n• Patch 2/4, “link to the gitdatamodel(7) tutorial”\n\n§ Link to v1\n\nhttps://lore.kernel.org/git/CV_doc_datamodel_advertize.bea@msgid.xyz/\n\n§ Aside about context lines in gitlossary(7)\n\nNothing to do with this topic, but I noticed this “..” in gitglossary(7):\n\n| Different subhierarchies are used for different purposes. For example,\n| the `refs/heads/` hierarchy is used to represent local branches whereas\n| the `refs/tags/` hierarchy is used to represent local tags..\n\nFrom 74b50a58 (Documentation/glossary: define root refs as refs,\n2024-05-15) by Patrick. Is that intentional, like an ellipsis? In other\nwords listing heads, then tags, then using ellipsis to communicate “you\nsee the pattern here”.\n\n[1/4] doc: git: list gitdatamodel(7) as a concept guide\n[2/4] doc: git: link to the gitdatamodel(7) tutorial\n[3/4] doc: glossary: link four of the terms to gitdatamodel(7)\n[4/4] doc: datamodel: link to the glossary\n\n Documentation/git.adoc              | 12 ++++++++----\n Documentation/gitdatamodel.adoc     |  6 ++++++\n Documentation/gitglossary.adoc      |  1 +\n Documentation/glossary-content.adoc | 13 ++++++++++---\n command-list.txt                    |  1 +\n 5 files changed, 26 insertions(+), 7 deletions(-)\n\nInterdiff against v1:\nRange-diff against v1:\n1:  7fbff6b7d1f ! 1:  35832098717 doc: git: list gitdatamodel(7) as a concept guide\n    @@ Commit message\n     \n         dee80940 (doc: add an explanation of Git's data model, 2025-11-12) added\n         gitdatamodel(7), documenting Git’s data model. But it is not mentioned\n    -    everywhere.\n    +    anywhere.\n     \n         Let’s start by listing it under Guides in git(1) and with `git help\n         --guides`.\n2:  916e9f7d46f ! 2:  3d8c4334785 doc: git: link to the gitdatamodel(7) tutorial\n    @@ Metadata\n      ## Commit message ##\n         doc: git: link to the gitdatamodel(7) tutorial\n     \n    -    The previous commit added the first mention of gitdatamodel(1) on\n    -    another page, namely in git(1). But there are also other places where\n    -    a mention is relevant.\n    +    The previous commit added the first mention of gitdatamodel(7) here,\n    +    under Guides. But there are also other sections where a mention is\n    +    relevant.\n     \n         Let’s mention it:\n     \n    -    • under Description, since it as useful as the other tutorials already\n    -      mentioned there for those who are interested;\n    +    • under Description, since it is as useful as the other tutorials\n    +      already mentioned there for those who are interested;\n         • under Terminology, since it complements gitglossary(7) as a\n           pedagogical rather than reference source for the core terms;[1] and\n         • under See Also, since the other tutorials (plus the user manual) are\n3:  5c83788e417 = 3:  04802040a8d doc: glossary: link four of the terms to gitdatamodel(7)\n4:  f8fb18b5f98 = 4:  5e8911beb4e doc: datamodel: link to the glossary\n\nbase-commit: e9019fcafe0040228b8631c30f97ae1adb61bcdc\n-- \n2.55.0.13.g85d2d65e389\n\n"},{"id":"551065","messageId":"V2_git_help_--guide_datam.c21@msgid.xyz","threadId":"66198","inReplyTo":"V2_CV_doc_datamodel_advertize.c20@msgid.xyz","subject":"[PATCH v2 1/4] doc: git: list gitdatamodel(7) as a concept guide","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-08-23T11:32:46Z","receivedAt":"2026-08-23T11:33:23Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\ndee80940 (doc: add an explanation of Git's data model, 2025-11-12) added\ngitdatamodel(7), documenting Git’s data model. But it is not mentioned\nanywhere.\n\nLet’s start by listing it under Guides in git(1) and with `git help\n--guides`.\n\nSigned-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n---\n\nNotes (series):\n    v2:\n    • Msg: s/everywhere/anywhere/[1]\n      🔗 1: https://lore.kernel.org/git/aohDEKEs82MaWECV@pks.im/#t\n\n command-list.txt | 1 +\n 1 file changed, 1 insertion(+)\n\ndiff --git a/command-list.txt b/command-list.txt\nindex 21b802c4202..63ae2a67c94 100644\n--- a/command-list.txt\n+++ b/command-list.txt\n@@ -217,6 +217,7 @@ gitcli                                  userinterfaces\n gitcore-tutorial                        guide\n gitcredentials                          guide\n gitcvs-migration                        guide\n+gitdatamodel                            guide\n gitdiffcore                             guide\n giteveryday                             guide\n gitfaq                                  guide\n-- \n2.55.0.13.g85d2d65e389\n\n"},{"id":"551066","messageId":"V2_git_to_datam.c22@msgid.xyz","threadId":"66198","inReplyTo":"V2_CV_doc_datamodel_advertize.c20@msgid.xyz","subject":"[PATCH v2 2/4] doc: git: link to the gitdatamodel(7) tutorial","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-08-23T11:32:47Z","receivedAt":"2026-08-23T11:33:41Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\nThe previous commit added the first mention of gitdatamodel(7) here,\nunder Guides. But there are also other sections where a mention is\nrelevant.\n\nLet’s mention it:\n\n• under Description, since it is as useful as the other tutorials\n  already mentioned there for those who are interested;\n• under Terminology, since it complements gitglossary(7) as a\n  pedagogical rather than reference source for the core terms;[1] and\n• under See Also, since the other tutorials (plus the user manual) are\n  mentioned there.\n\nWe don’t need to mention it under Further Documentation since we now\nmention it under Description.\n\n† 1: See dee80940 (doc: add an explanation of Git's data model,\n     2025-11-12):\n\n          `gitglossary`. This makes a good effort, but it's an\n          alphabetically ordered dictionary and a dictionary is not a\n          good way to learn concepts. You have to jump around too much\n          and it's not possible to present the concepts in the order\n          that they should be explained.\n\nSigned-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n---\n\nNotes (series):\n    v2:\n    • Msg: Correct section: s/gitdatamodel(1)/gitdatamodel(7)/[1]\n    • Msg: Missing “is”[1]\n    • Msg: Correct “on another page” which refers to git(1)—the same\n      page that we are changing.[2] This is a mistake from my own\n      iterations since this started as the first commit and I had to\n      reword from: not mentioned yet; mentioned with `git help\n      --guides`; (realizes that it is also automatically included in\n      Guides now) ...\n    • Msg: s/other places/other sections/[2]\n      🔗 1: https://lore.kernel.org/git/aohDFdjPU0t2d9_8@pks.im/\n      † 2: Self review\n    ---\n    v1:\n    I have used double spacing for sentences since that seemed to what was\n    already in use.\n\n Documentation/git.adoc | 12 ++++++++----\n 1 file changed, 8 insertions(+), 4 deletions(-)\n\ndiff --git a/Documentation/git.adoc b/Documentation/git.adoc\nindex 8a5cdd3b3d2..6f0075f9188 100644\n--- a/Documentation/git.adoc\n+++ b/Documentation/git.adoc\n@@ -25,7 +25,8 @@ and full access to internals.\n See linkgit:gittutorial[7] to get started, then see\n linkgit:giteveryday[7] for a useful minimum set of\n commands.  The link:user-manual.html[Git User's Manual] has a more\n-in-depth introduction.\n+in-depth introduction.  See linkgit:gitdatamodel[7] if you want to\n+learn about the data model and important terminology.\n \n After you mastered the basic concepts, you can come back to this\n page to learn what commands Git offers.  You can learn more about\n@@ -469,7 +470,9 @@ Higher level SCMs may provide and manage additional information in the\n \n Terminology\n -----------\n-Please see linkgit:gitglossary[7].\n+Please see linkgit:gitglossary[7].  See linkgit:gitdatamodel[7] for a\n+discussion of the core data model, which includes important terminology\n+used throughout the documentation.\n \n \n Environment Variables\n@@ -1199,8 +1202,9 @@ SEE ALSO\n --------\n linkgit:gittutorial[7], linkgit:gittutorial-2[7],\n linkgit:giteveryday[7], linkgit:gitcvs-migration[7],\n-linkgit:gitglossary[7], linkgit:gitcore-tutorial[7],\n-linkgit:gitcli[7], link:user-manual.html[The Git User's Manual],\n+linkgit:gitglossary[7], linkgit:gitdatamodel[7],\n+linkgit:gitcore-tutorial[7], linkgit:gitcli[7],\n+link:user-manual.html[The Git User's Manual],\n linkgit:gitworkflows[7]\n \n GIT\n-- \n2.55.0.13.g85d2d65e389\n\n"},{"id":"551067","messageId":"V2_glossary_4_terms_datam.c23@msgid.xyz","threadId":"66198","inReplyTo":"V2_CV_doc_datamodel_advertize.c20@msgid.xyz","subject":"[PATCH v2 3/4] doc: glossary: link four of the terms to gitdatamodel(7)","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-08-23T11:32:48Z","receivedAt":"2026-08-23T11:34:00Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\nFour of the terms in the glossary are discussed in gitdatamodel(7).\nLet’s link to the data model page from the glossary.\n\nThe phrasing needs to be tweaked based on what gitdatamodel(7) offers\nfor each term compared to the glossary, or even other pages (see the\ngit-reflog(1) mention). For instance, the ref/reference discussion can\nbe called a “see also” since the glossary here already goes into\ndetail. On the other hand, gitdatamodel(7) offers more details on\nthe subject of “the index”.\n\nLet’s also add gitdatamodel(7) to See Also. It is at least as relevant\nas the other tutorial pages that are already mentioned.\n\nSigned-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n---\n\nNotes (series):\n    V2:\n    No changes.\n    \n    I reread the Ref entry in the glossary and compared it to the\n    Reference entry on the data model page. These two texts cover\n    similar things (except the “irregular refs”, only covered in the\n    glossary). The data model page is slightly more conceptual in tone.\n    \n    That’s why I originally went with just “see also” instead of for\n    example “see also ... more details” or “see also ... for a more\n    conceptual overview). They are too similar to distinguish further\n    in this context.\n\n Documentation/gitglossary.adoc      |  1 +\n Documentation/glossary-content.adoc | 13 ++++++++++---\n 2 files changed, 11 insertions(+), 3 deletions(-)\n\ndiff --git a/Documentation/gitglossary.adoc b/Documentation/gitglossary.adoc\nindex 0e85be48470..b046d9cb293 100644\n--- a/Documentation/gitglossary.adoc\n+++ b/Documentation/gitglossary.adoc\n@@ -16,6 +16,7 @@ include::glossary-content.adoc[]\n \n SEE ALSO\n --------\n+linkgit:gitdatamodel[7],\n linkgit:gittutorial[7],\n linkgit:gittutorial-2[7],\n linkgit:gitcvs-migration[7],\ndiff --git a/Documentation/glossary-content.adoc b/Documentation/glossary-content.adoc\nindex 8c4e9dd3bee..52301a56dda 100644\n--- a/Documentation/glossary-content.adoc\n+++ b/Documentation/glossary-content.adoc\n@@ -251,7 +251,8 @@ for a more flexible and robust system to do the same thing.\n \tas objects. The index is a stored version of your\n \t<<def_working_tree,working tree>>. Truth be told, it can also contain a second, and even\n \ta third version of a working tree, which are used\n-\twhen <<def_merge,merging>>.\n+\twhen <<def_merge,merging>>. See \"THE INDEX\" in\n+\tlinkgit:gitdatamodel[7] for details.\n \n [[def_index_entry]]index entry::\n \tThe information regarding a particular file, stored in the\n@@ -290,7 +291,8 @@ This commit is referred to as a \"merge commit\", or sometimes just a\n [[def_object]]object::\n \tThe unit of storage in Git. It is uniquely identified by the\n \t<<def_SHA1,SHA-1>> of its contents. Consequently, an\n-\tobject cannot be changed.\n+\tobject cannot be changed. See \"OBJECTS\" in\n+\tlinkgit:gitdatamodel[7] for details.\n \n [[def_object_database]]object database::\n \tStores a set of \"objects\", and an individual <<def_object,object>> is\n@@ -587,12 +589,17 @@ extended in the future:\n Different subhierarchies are used for different purposes. For example,\n the `refs/heads/` hierarchy is used to represent local branches whereas\n the `refs/tags/` hierarchy is used to represent local tags..\n++\n+See also \"REFERENCES\" in linkgit:gitdatamodel[7].\n \n [[def_reflog]]reflog::\n \tA reflog shows the local \"history\" of a ref.  In other words,\n \tit can tell you what the 3rd last revision in _this_ repository\n \twas, and what was the current state in _this_ repository,\n-\tyesterday 9:14pm.  See linkgit:git-reflog[1] for details.\n+\tyesterday 9:14pm.\n++\n+See \"REFLOGS\" in linkgit:gitdatamodel[7] for a short explanation of the\n+format. See linkgit:git-reflog[1] for details.\n \n [[def_refspec]]refspec::\n \tA \"refspec\" is used by <<def_fetch,fetch>> and\n-- \n2.55.0.13.g85d2d65e389\n\n"},{"id":"551068","messageId":"V2_datam_to_glossary.c24@msgid.xyz","threadId":"66198","inReplyTo":"V2_CV_doc_datamodel_advertize.c20@msgid.xyz","subject":"[PATCH v2 4/4] doc: datamodel: link to the glossary","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-08-23T11:32:49Z","receivedAt":"2026-08-23T11:34:18Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\nWe linked from the glossary to the data model page in the last commit.\nIt can also be useful to link the other way for readers who might want\nto reference more terminology.\n\nSigned-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n---\n\nNotes (series):\n    v1:\n    But: maybe the See Also link is enough here?\n    \n    > a comprehensive terminology reference\n    \n    This is descriptive or aspirational. Either works.\n\n Documentation/gitdatamodel.adoc | 6 ++++++\n 1 file changed, 6 insertions(+)\n\ndiff --git a/Documentation/gitdatamodel.adoc b/Documentation/gitdatamodel.adoc\nindex dcfdff0346f..d588630e633 100644\n--- a/Documentation/gitdatamodel.adoc\n+++ b/Documentation/gitdatamodel.adoc\n@@ -24,6 +24,8 @@ Git's core operations use 4 kinds of data:\n 3. <<index,The index>>, also known as the staging area\n 4. <<reflogs,Reflogs>>: logs of changes to references (\"ref log\")\n \n+See linkgit:gitglossary[7] for a comprehensive terminology reference.\n+\n [[objects]]\n OBJECTS\n -------\n@@ -300,6 +302,10 @@ $ git reflog main --date=iso --no-decorate\n 4ccb6d7 main@{2025-09-29 15:16:48 -0400}: commit (initial): Initial commit\n ----\n \n+SEE ALSO\n+--------\n+linkgit:gitglossary[7]\n+\n GIT\n ---\n Part of the linkgit:git[1] suite\n-- \n2.55.0.13.g85d2d65e389\n\n"},{"id":"551520","messageId":"apUrC_ROf9lyiuAm@pks.im","threadId":"66198","inReplyTo":"V2_CV_doc_datamodel_advertize.c20@msgid.xyz","subject":"Re: [PATCH v2 0/4] doc: advertize gitdatamodel(1)","fromName":"Patrick Steinhardt","fromEmail":"ps@pks.im","sentAt":"2026-08-31T07:19:39Z","receivedAt":"2026-08-31T07:19:47Z","isPatch":true,"body":"On Sun, Aug 23, 2026 at 01:32:45PM +0200, kristofferhaugsbakk@fastmail.com wrote:\n> From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n> \n> Topic name (applied): kh/doc-datamodel\n> \n> Topic summary: gitdatamodel(7) is not linked to from anywhere. Let’s\n> mention it on other documentation pages and add a link to the glossary on\n> the data model page.\n> \n> § Testing\n> \n> Testing done on v1. No tests done for v2.\n> \n> § Changes in v2\n> \n> Thanks to Patrick for reviewing the first round.\n> \n> Correct commit messages for:\n> \n> • Patch 1/4, “list gitdatamodel(7) as a concept guide”\n> • Patch 2/4, “link to the gitdatamodel(7) tutorial”\n\nThanks, I'm happy with this version.\n\nPatrick\n"},{"id":"551753","messageId":"00afa5ab-0e37-4afb-8eec-d45e46dbd7a9@app.fastmail.com","threadId":"66198","inReplyTo":"apUrC_ROf9lyiuAm@pks.im","subject":"Re: [PATCH v2 0/4] doc: advertize gitdatamodel(1)","fromName":"Kristoffer Haugsbakk","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-09-02T13:20:55Z","receivedAt":"2026-09-02T13:21:29Z","isPatch":true,"body":"On Mon, Aug 31, 2026, at 09:19, Patrick Steinhardt wrote:\n> On Sun, Aug 23, 2026 at 01:32:45PM +0200,\n> kristofferhaugsbakk@fastmail.com wrote:\n>>[snip]\n>\n> Thanks, I'm happy with this version.\n\nThanks for your reviews.\n"},{"id":"551755","messageId":"954865cf-5984-4e0d-9e8c-7c874896a1f2@app.fastmail.com","threadId":"66198","inReplyTo":"V2_datam_to_glossary.c24@msgid.xyz","subject":"Re: [PATCH v2 4/4] doc: datamodel: link to the glossary","fromName":"Julia Evans","fromEmail":"julia@jvns.ca","sentAt":"2026-09-02T13:32:11Z","receivedAt":"2026-09-02T13:32:32Z","isPatch":true,"body":"\n\nOn Sun, Aug 23, 2026, at 7:32 AM, kristofferhaugsbakk@fastmail.com wrote:\n> From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n>\n> We linked from the glossary to the data model page in the last commit.\n> It can also be useful to link the other way for readers who might want\n> to reference more terminology.\n>\n> Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n> ---\n>\n> Notes (series):\n>     v1:\n>     But: maybe the See Also link is enough here?\n>    \n>     > a comprehensive terminology reference\n>    \n>     This is descriptive or aspirational. Either works.\n>\n>  Documentation/gitdatamodel.adoc | 6 ++++++\n>  1 file changed, 6 insertions(+)\n>\n> diff --git a/Documentation/gitdatamodel.adoc b/Documentation/gitdatamodel.adoc\n> index dcfdff0346f..d588630e633 100644\n> --- a/Documentation/gitdatamodel.adoc\n> +++ b/Documentation/gitdatamodel.adoc\n> @@ -24,6 +24,8 @@ Git's core operations use 4 kinds of data:\n>  3. <<index,The index>>, also known as the staging area\n>  4. <<reflogs,Reflogs>>: logs of changes to references (\"ref log\")\n> \n> +See linkgit:gitglossary[7] for a comprehensive terminology reference.\n\nI'd prefer to put this in SEE ALSO instead. \nAlso \"comprehensive terminology reference\" might be a bit aspirational\nlike you say. Maybe just \"terminology reference\"?\n\nThanks for adding these links! \n\n- Julia\n"},{"id":"551789","messageId":"d0430082-3f19-4724-ac95-1efc1f9143e1@app.fastmail.com","threadId":"66198","inReplyTo":"954865cf-5984-4e0d-9e8c-7c874896a1f2@app.fastmail.com","subject":"Re: [PATCH v2 4/4] doc: datamodel: link to the glossary","fromName":"Kristoffer Haugsbakk","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-09-02T17:04:31Z","receivedAt":"2026-09-02T17:04:57Z","isPatch":true,"body":"On Wed, Sep 2, 2026, at 15:32, Julia Evans wrote:\n> On Sun, Aug 23, 2026, at 7:32 AM, kristofferhaugsbakk@fastmail.com wrote:\n>>[snip]\n>> diff --git a/Documentation/gitdatamodel.adoc b/Documentation/gitdatamodel.adoc\n>> index dcfdff0346f..d588630e633 100644\n>> --- a/Documentation/gitdatamodel.adoc\n>> +++ b/Documentation/gitdatamodel.adoc\n>> @@ -24,6 +24,8 @@ Git's core operations use 4 kinds of data:\n>>  3. <<index,The index>>, also known as the staging area\n>>  4. <<reflogs,Reflogs>>: logs of changes to references (\"ref log\")\n>>\n>> +See linkgit:gitglossary[7] for a comprehensive terminology reference.\n>\n> I'd prefer to put this in SEE ALSO instead.\n\nIt’s also in See Also. Do you mean put the whole sentence in See Also\ninstead of just this link? I have never seen See Also be used for more\nthan just a comma-separated list of links.\n\nI’m also okay with just dropping it.\n\n> Also \"comprehensive terminology reference\" might be a bit aspirational\n> like you say. Maybe just \"terminology reference\"?\n\nYeah. The idea behind having any adjective or modifier was that just\n“terminology reference” seemed to not contrast the roles of these two\npages enough. Since they are both about terminology after all, just one\nof them drills down into the core concepts/terminology.\n\nOr it could be\n\n   ... terminology reference for all of Git.\n\nWhich seems a bit much and wordy. Or maybe\n\n   ... general terminology reference.\n\n>\n> Thanks for adding these links!\n\nThanks for reviewing. :·)\n"},{"id":"551791","messageId":"5e12e3ad-a80c-4c7b-81f7-e028e461fdd1@app.fastmail.com","threadId":"66198","inReplyTo":"d0430082-3f19-4724-ac95-1efc1f9143e1@app.fastmail.com","subject":"Re: [PATCH v2 4/4] doc: datamodel: link to the glossary","fromName":"Julia Evans","fromEmail":"julia@jvns.ca","sentAt":"2026-09-02T17:08:01Z","receivedAt":"2026-09-02T17:08:22Z","isPatch":true,"body":"\n\nOn Wed, Sep 2, 2026, at 1:04 PM, Kristoffer Haugsbakk wrote:\n> On Wed, Sep 2, 2026, at 15:32, Julia Evans wrote:\n>> On Sun, Aug 23, 2026, at 7:32 AM, kristofferhaugsbakk@fastmail.com wrote:\n>>>[snip]\n>>> diff --git a/Documentation/gitdatamodel.adoc b/Documentation/gitdatamodel.adoc\n>>> index dcfdff0346f..d588630e633 100644\n>>> --- a/Documentation/gitdatamodel.adoc\n>>> +++ b/Documentation/gitdatamodel.adoc\n>>> @@ -24,6 +24,8 @@ Git's core operations use 4 kinds of data:\n>>>  3. <<index,The index>>, also known as the staging area\n>>>  4. <<reflogs,Reflogs>>: logs of changes to references (\"ref log\")\n>>>\n>>> +See linkgit:gitglossary[7] for a comprehensive terminology reference.\n>>\n>> I'd prefer to put this in SEE ALSO instead.\n>\n> It’s also in See Also. Do you mean put the whole sentence in See Also\n> instead of just this link? I have never seen See Also be used for more\n> than just a comma-separated list of links.\n>\n> I’m also okay with just dropping it.\n\nAh, I didn't see it in See Also, I'm still struggling to get used to this email-based\npatch review workflow :)\n\nI think just dropping it is fine.\n\n>> Also \"comprehensive terminology reference\" might be a bit aspirational\n>> like you say. Maybe just \"terminology reference\"?\n>\n> Yeah. The idea behind having any adjective or modifier was that just\n> “terminology reference” seemed to not contrast the roles of these two\n> pages enough. Since they are both about terminology after all, just one\n> of them drills down into the core concepts/terminology.\n>\n> Or it could be\n>\n>    ... terminology reference for all of Git.\n>\n> Which seems a bit much and wordy. Or maybe\n>\n>    ... general terminology reference.\n>\n>>\n>> Thanks for adding these links!\n>\n> Thanks for reviewing. :·)\n"},{"id":"552047","messageId":"V3_CV_doc_datamodel_advertize.c7e@msgid.xyz","threadId":"66198","inReplyTo":"CV_doc_datamodel_advertize.bea@msgid.xyz","subject":"[PATCH v3 0/4] doc: advertize gitdatamodel(1)","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-09-05T17:28:11Z","receivedAt":"2026-09-05T17:28:59Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\nTopic name (applied): kh/doc-datamodel\n\nTopic summary: gitdatamodel(7) is not linked to from anywhere. Let’s\nmention it on other documentation pages and add a link to the glossary on\nthe data model page.\n\n§ Testing\n\nTesting done on v1. No tests done for v2 or v3.\n\n§ Changes in v3\n\nThanks to Patrick and Julia for reviewing.\n\nFollowing up on Julia’s review. See the interdiff/range diff and\npatch notes. The patch notes also documents the changes from the\nprevious rounds by the way.\n\n§ Link to v2\n\nhttps://lore.kernel.org/git/V2_CV_doc_datamodel_advertize.c20@msgid.xyz/#t\n\n§ Aside about context lines in gitlossary(7)\n\n(see v1 & v2; no one commented on this)\n\n[1/4] doc: git: list gitdatamodel(7) as a concept guide\n[2/4] doc: git: link to the gitdatamodel(7) tutorial\n[3/4] doc: glossary: link four of the terms to gitdatamodel(7)\n[4/4] doc: datamodel: link to the glossary\n\n Documentation/git.adoc              | 12 ++++++++----\n Documentation/gitdatamodel.adoc     |  4 ++++\n Documentation/gitglossary.adoc      |  1 +\n Documentation/glossary-content.adoc | 13 ++++++++++---\n command-list.txt                    |  1 +\n 5 files changed, 24 insertions(+), 7 deletions(-)\n\nInterdiff against v2:\ndiff --git a/Documentation/gitdatamodel.adoc b/Documentation/gitdatamodel.adoc\nindex d588630e633..56b7635c199 100644\n--- a/Documentation/gitdatamodel.adoc\n+++ b/Documentation/gitdatamodel.adoc\n@@ -24,8 +24,6 @@ Git's core operations use 4 kinds of data:\n 3. <<index,The index>>, also known as the staging area\n 4. <<reflogs,Reflogs>>: logs of changes to references (\"ref log\")\n \n-See linkgit:gitglossary[7] for a comprehensive terminology reference.\n-\n [[objects]]\n OBJECTS\n -------\nRange-diff against v2:\n1:  35832098717 = 1:  35832098717 doc: git: list gitdatamodel(7) as a concept guide\n2:  3d8c4334785 = 2:  3d8c4334785 doc: git: link to the gitdatamodel(7) tutorial\n3:  04802040a8d = 3:  04802040a8d doc: glossary: link four of the terms to gitdatamodel(7)\n4:  5e8911beb4e ! 4:  ef9469244f2 doc: datamodel: link to the glossary\n    @@ Commit message\n         Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n     \n      ## Documentation/gitdatamodel.adoc ##\n    -@@ Documentation/gitdatamodel.adoc: Git's core operations use 4 kinds of data:\n    - 3. <<index,The index>>, also known as the staging area\n    - 4. <<reflogs,Reflogs>>: logs of changes to references (\"ref log\")\n    - \n    -+See linkgit:gitglossary[7] for a comprehensive terminology reference.\n    -+\n    - [[objects]]\n    - OBJECTS\n    - -------\n     @@ Documentation/gitdatamodel.adoc: $ git reflog main --date=iso --no-decorate\n      4ccb6d7 main@{2025-09-29 15:16:48 -0400}: commit (initial): Initial commit\n      ----\n\nbase-commit: e9019fcafe0040228b8631c30f97ae1adb61bcdc\n-- \n2.55.0.13.g335083658c8\n\n"},{"id":"552048","messageId":"V3_git_help_--guide_datam.c7f@msgid.xyz","threadId":"66198","inReplyTo":"V3_CV_doc_datamodel_advertize.c7e@msgid.xyz","subject":"[PATCH v3 1/4] doc: git: list gitdatamodel(7) as a concept guide","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-09-05T17:28:12Z","receivedAt":"2026-09-05T17:29:18Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\ndee80940 (doc: add an explanation of Git's data model, 2025-11-12) added\ngitdatamodel(7), documenting Git’s data model. But it is not mentioned\nanywhere.\n\nLet’s start by listing it under Guides in git(1) and with `git help\n--guides`.\n\nSigned-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n---\n\nNotes (series):\n    v2:\n    • Msg: s/everywhere/anywhere/[1]\n      🔗 1: https://lore.kernel.org/git/aohDEKEs82MaWECV@pks.im/#t\n\n command-list.txt | 1 +\n 1 file changed, 1 insertion(+)\n\ndiff --git a/command-list.txt b/command-list.txt\nindex 21b802c4202..63ae2a67c94 100644\n--- a/command-list.txt\n+++ b/command-list.txt\n@@ -217,6 +217,7 @@ gitcli                                  userinterfaces\n gitcore-tutorial                        guide\n gitcredentials                          guide\n gitcvs-migration                        guide\n+gitdatamodel                            guide\n gitdiffcore                             guide\n giteveryday                             guide\n gitfaq                                  guide\n-- \n2.55.0.13.g335083658c8\n\n"},{"id":"552049","messageId":"V3_git_to_datam.c80@msgid.xyz","threadId":"66198","inReplyTo":"V3_CV_doc_datamodel_advertize.c7e@msgid.xyz","subject":"[PATCH v3 2/4] doc: git: link to the gitdatamodel(7) tutorial","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-09-05T17:28:13Z","receivedAt":"2026-09-05T17:29:37Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\nThe previous commit added the first mention of gitdatamodel(7) here,\nunder Guides. But there are also other sections where a mention is\nrelevant.\n\nLet’s mention it:\n\n• under Description, since it is as useful as the other tutorials\n  already mentioned there for those who are interested;\n• under Terminology, since it complements gitglossary(7) as a\n  pedagogical rather than reference source for the core terms;[1] and\n• under See Also, since the other tutorials (plus the user manual) are\n  mentioned there.\n\nWe don’t need to mention it under Further Documentation since we now\nmention it under Description.\n\n† 1: See dee80940 (doc: add an explanation of Git's data model,\n     2025-11-12):\n\n          `gitglossary`. This makes a good effort, but it's an\n          alphabetically ordered dictionary and a dictionary is not a\n          good way to learn concepts. You have to jump around too much\n          and it's not possible to present the concepts in the order\n          that they should be explained.\n\nSigned-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n---\n\nNotes (series):\n    v2:\n    • Msg: Correct section: s/gitdatamodel(1)/gitdatamodel(7)/[1]\n    • Msg: Missing “is”[1]\n    • Msg: Correct “on another page” which refers to git(1)—the same\n      page that we are changing.[2] This is a mistake from my own\n      iterations since this started as the first commit and I had to\n      reword from: not mentioned yet; mentioned with `git help\n      --guides`; (realizes that it is also automatically included in\n      Guides now) ...\n    • Msg: s/other places/other sections/[2]\n      🔗 1: https://lore.kernel.org/git/aohDFdjPU0t2d9_8@pks.im/\n      † 2: Self review\n    ---\n    v1:\n    I have used double spacing for sentences since that seemed to what was\n    already in use.\n\n Documentation/git.adoc | 12 ++++++++----\n 1 file changed, 8 insertions(+), 4 deletions(-)\n\ndiff --git a/Documentation/git.adoc b/Documentation/git.adoc\nindex 8a5cdd3b3d2..6f0075f9188 100644\n--- a/Documentation/git.adoc\n+++ b/Documentation/git.adoc\n@@ -25,7 +25,8 @@ and full access to internals.\n See linkgit:gittutorial[7] to get started, then see\n linkgit:giteveryday[7] for a useful minimum set of\n commands.  The link:user-manual.html[Git User's Manual] has a more\n-in-depth introduction.\n+in-depth introduction.  See linkgit:gitdatamodel[7] if you want to\n+learn about the data model and important terminology.\n \n After you mastered the basic concepts, you can come back to this\n page to learn what commands Git offers.  You can learn more about\n@@ -469,7 +470,9 @@ Higher level SCMs may provide and manage additional information in the\n \n Terminology\n -----------\n-Please see linkgit:gitglossary[7].\n+Please see linkgit:gitglossary[7].  See linkgit:gitdatamodel[7] for a\n+discussion of the core data model, which includes important terminology\n+used throughout the documentation.\n \n \n Environment Variables\n@@ -1199,8 +1202,9 @@ SEE ALSO\n --------\n linkgit:gittutorial[7], linkgit:gittutorial-2[7],\n linkgit:giteveryday[7], linkgit:gitcvs-migration[7],\n-linkgit:gitglossary[7], linkgit:gitcore-tutorial[7],\n-linkgit:gitcli[7], link:user-manual.html[The Git User's Manual],\n+linkgit:gitglossary[7], linkgit:gitdatamodel[7],\n+linkgit:gitcore-tutorial[7], linkgit:gitcli[7],\n+link:user-manual.html[The Git User's Manual],\n linkgit:gitworkflows[7]\n \n GIT\n-- \n2.55.0.13.g335083658c8\n\n"},{"id":"552050","messageId":"V3_glossary_4_terms_datam.c81@msgid.xyz","threadId":"66198","inReplyTo":"V3_CV_doc_datamodel_advertize.c7e@msgid.xyz","subject":"[PATCH v3 3/4] doc: glossary: link four of the terms to gitdatamodel(7)","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-09-05T17:28:14Z","receivedAt":"2026-09-05T17:29:56Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\nFour of the terms in the glossary are discussed in gitdatamodel(7).\nLet’s link to the data model page from the glossary.\n\nThe phrasing needs to be tweaked based on what gitdatamodel(7) offers\nfor each term compared to the glossary, or even other pages (see the\ngit-reflog(1) mention). For instance, the ref/reference discussion can\nbe called a “see also” since the glossary here already goes into\ndetail. On the other hand, gitdatamodel(7) offers more details on\nthe subject of “the index”.\n\nLet’s also add gitdatamodel(7) to See Also. It is at least as relevant\nas the other tutorial pages that are already mentioned.\n\nSigned-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n---\n\nNotes (series):\n    v2:\n    No changes.\n    \n    I reread the Ref entry in the glossary and compared it to the\n    Reference entry on the data model page. These two texts cover\n    similar things (except the “irregular refs”, only covered in the\n    glossary). The data model page is slightly more conceptual in tone.\n    \n    That’s why I originally went with just “see also” instead of for\n    example “see also ... more details” or “see also ... for a more\n    conceptual overview). They are too similar to distinguish further\n    in this context.\n\n Documentation/gitglossary.adoc      |  1 +\n Documentation/glossary-content.adoc | 13 ++++++++++---\n 2 files changed, 11 insertions(+), 3 deletions(-)\n\ndiff --git a/Documentation/gitglossary.adoc b/Documentation/gitglossary.adoc\nindex 0e85be48470..b046d9cb293 100644\n--- a/Documentation/gitglossary.adoc\n+++ b/Documentation/gitglossary.adoc\n@@ -16,6 +16,7 @@ include::glossary-content.adoc[]\n \n SEE ALSO\n --------\n+linkgit:gitdatamodel[7],\n linkgit:gittutorial[7],\n linkgit:gittutorial-2[7],\n linkgit:gitcvs-migration[7],\ndiff --git a/Documentation/glossary-content.adoc b/Documentation/glossary-content.adoc\nindex 8c4e9dd3bee..52301a56dda 100644\n--- a/Documentation/glossary-content.adoc\n+++ b/Documentation/glossary-content.adoc\n@@ -251,7 +251,8 @@ for a more flexible and robust system to do the same thing.\n \tas objects. The index is a stored version of your\n \t<<def_working_tree,working tree>>. Truth be told, it can also contain a second, and even\n \ta third version of a working tree, which are used\n-\twhen <<def_merge,merging>>.\n+\twhen <<def_merge,merging>>. See \"THE INDEX\" in\n+\tlinkgit:gitdatamodel[7] for details.\n \n [[def_index_entry]]index entry::\n \tThe information regarding a particular file, stored in the\n@@ -290,7 +291,8 @@ This commit is referred to as a \"merge commit\", or sometimes just a\n [[def_object]]object::\n \tThe unit of storage in Git. It is uniquely identified by the\n \t<<def_SHA1,SHA-1>> of its contents. Consequently, an\n-\tobject cannot be changed.\n+\tobject cannot be changed. See \"OBJECTS\" in\n+\tlinkgit:gitdatamodel[7] for details.\n \n [[def_object_database]]object database::\n \tStores a set of \"objects\", and an individual <<def_object,object>> is\n@@ -587,12 +589,17 @@ extended in the future:\n Different subhierarchies are used for different purposes. For example,\n the `refs/heads/` hierarchy is used to represent local branches whereas\n the `refs/tags/` hierarchy is used to represent local tags..\n++\n+See also \"REFERENCES\" in linkgit:gitdatamodel[7].\n \n [[def_reflog]]reflog::\n \tA reflog shows the local \"history\" of a ref.  In other words,\n \tit can tell you what the 3rd last revision in _this_ repository\n \twas, and what was the current state in _this_ repository,\n-\tyesterday 9:14pm.  See linkgit:git-reflog[1] for details.\n+\tyesterday 9:14pm.\n++\n+See \"REFLOGS\" in linkgit:gitdatamodel[7] for a short explanation of the\n+format. See linkgit:git-reflog[1] for details.\n \n [[def_refspec]]refspec::\n \tA \"refspec\" is used by <<def_fetch,fetch>> and\n-- \n2.55.0.13.g335083658c8\n\n"},{"id":"552051","messageId":"V3_datam_to_glossary.c82@msgid.xyz","threadId":"66198","inReplyTo":"V3_CV_doc_datamodel_advertize.c7e@msgid.xyz","subject":"[PATCH v3 4/4] doc: datamodel: link to the glossary","fromName":"","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2026-09-05T17:28:15Z","receivedAt":"2026-09-05T17:30:15Z","isPatch":true,"body":"From: Kristoffer Haugsbakk <code@khaugsbakk.name>\n\nWe linked from the glossary to the data model page in the last commit.\nIt can also be useful to link the other way for readers who might want\nto reference more terminology.\n\nSigned-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>\n---\n\nNotes (series):\n    v3:\n    • Drop the running text mention of gitglossary(7). Just use the link in See\n      Also.[1]\n      🔗 1: https://lore.kernel.org/git/5e12e3ad-a80c-4c7b-81f7-e028e461fdd1@app.fastmail.com/#t\n\n Documentation/gitdatamodel.adoc | 4 ++++\n 1 file changed, 4 insertions(+)\n\ndiff --git a/Documentation/gitdatamodel.adoc b/Documentation/gitdatamodel.adoc\nindex dcfdff0346f..56b7635c199 100644\n--- a/Documentation/gitdatamodel.adoc\n+++ b/Documentation/gitdatamodel.adoc\n@@ -300,6 +300,10 @@ $ git reflog main --date=iso --no-decorate\n 4ccb6d7 main@{2025-09-29 15:16:48 -0400}: commit (initial): Initial commit\n ----\n \n+SEE ALSO\n+--------\n+linkgit:gitglossary[7]\n+\n GIT\n ---\n Part of the linkgit:git[1] suite\n-- \n2.55.0.13.g335083658c8\n\n"}]}