From 893dce2ffbd4e38191f10c67781518acbc3f7b32 Mon Sep 17 00:00:00 2001 From: Victoria Dye Date: Mon, 13 Nov 2023 23:17:51 +0000 Subject: glossary: add definitions for dereference & peel Add 'gitglossary' definitions for "dereference" (as it used for both symrefs and objects) and "peel". These terms are used in options and documentation throughout Git, but they are not clearly defined anywhere and the behavior they refer to depends heavily on context. Provide explicit definitions to clarify existing documentation to users and help contributors to use the most appropriate terminology possible in their additions to Git. Update other definitions in the glossary that use the term "dereference" to link to 'def_dereference'. Signed-off-by: Victoria Dye Signed-off-by: Junio C Hamano --- Documentation/glossary-content.txt | 49 +++++++++++++++++++++++++++----------- 1 file changed, 35 insertions(+), 14 deletions(-) (limited to 'Documentation/glossary-content.txt') diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt index 5a537268e2..3d7e76e1e1 100644 --- a/Documentation/glossary-content.txt +++ b/Documentation/glossary-content.txt @@ -98,9 +98,8 @@ to point at the new commit. revision. [[def_commit-ish]]commit-ish (also committish):: - A <> or an - <> that can be recursively dereferenced to - a commit object. + A <> or an <> that + can be recursively <> to a commit object. The following are all commit-ishes: a commit object, a <> that points to a commit @@ -125,6 +124,25 @@ to point at the new commit. dangling object has no references to it from any reference or <> in the <>. +[[def_dereference]]dereference:: + Referring to a <>: the action of accessing the + <> pointed at by a symbolic ref. Recursive + dereferencing involves repeating the aforementioned process on the + resulting ref until a non-symbolic reference is found. ++ +Referring to a <>: the action of accessing the +<> a tag points at. Tags are recursively dereferenced by +repeating the operation on the result object until the result has either a +specified <> (where applicable) or any non-"tag" +object type. A synonym for "recursive dereference" in the context of tags is +"<>". ++ +Referring to a <>: the action of accessing +the commit's tree object. Commits cannot be dereferenced recursively. ++ +Unless otherwise specified, "dereferencing" as it used in the context of Git +commands or protocols is implicitly recursive. + [[def_detached_HEAD]]detached HEAD:: Normally the <> stores the name of a <>, and commands that operate on the @@ -444,6 +462,10 @@ exclude;; of the logical predecessor(s) in the line of development, i.e. its parents. +[[def_peel]]peel:: + The action of recursively <> a + <>. + [[def_pickaxe]]pickaxe:: The term <> refers to an option to the diffcore routines that help select changes that add or delete a given text @@ -620,12 +642,11 @@ The most notable example is `HEAD`. copies of) commit objects of the contained submodules. [[def_symref]]symref:: - Symbolic reference: instead of containing the <> - id itself, it is of the format 'ref: refs/some/thing' and when - referenced, it recursively dereferences to this reference. - '<>' is a prime example of a symref. Symbolic - references are manipulated with the linkgit:git-symbolic-ref[1] - command. + Symbolic reference: instead of containing the <> id + itself, it is of the format 'ref: refs/some/thing' and when referenced, + it recursively <> to this reference. + '<>' is a prime example of a symref. Symbolic references + are manipulated with the linkgit:git-symbolic-ref[1] command. [[def_tag]]tag:: A <> under `refs/tags/` namespace that points to an @@ -661,11 +682,11 @@ The most notable example is `HEAD`. <> is equivalent to a <>. [[def_tree-ish]]tree-ish (also treeish):: - A <> or an <> - that can be recursively dereferenced to a tree object. - Dereferencing a <> yields the - tree object corresponding to the <>'s - top <>. + A <> or an <> that can + be recursively <> to a tree object. + Dereferencing a <> yields the tree + object corresponding to the <>'s top + <>. The following are all tree-ishes: a <>, a tree object, -- cgit 1.2.3-korg