Re: [PATCH 7/7] Documentation: add "special refs" to the glossary

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Patrick

On 19/01/2024 10:40, Patrick Steinhardt wrote:
Add the "special refs" term to our glossary.

Related to this the glossary entry for pseudorefs says

        Pseudorefs are a class of files under `$GIT_DIR` which behave
        like refs for the purposes of rev-parse, but which are treated
        specially by git.  Pseudorefs both have names that are all-caps,
        and always start with a line consisting of a
        <<def_SHA1,SHA-1>> followed by whitespace.  So, HEAD is not a
        pseudoref, because it is sometimes a symbolic ref.  They might
        optionally contain some additional data.  `MERGE_HEAD` and
        `CHERRY_PICK_HEAD` are examples.  Unlike
        <<def_per_worktree_ref,per-worktree refs>>, these files cannot
        be symbolic refs, and never have reflogs.  They also cannot be
        updated through the normal ref update machinery.  Instead,
        they are updated by directly writing to the files.  However,
        they can be read as if they were refs, so `git rev-parse
        MERGE_HEAD` will work.

which is very file-centric. We should probably update that as we're moving away from filesystem access except for special refs.

Best Wishes

Phillip

Signed-off-by: Patrick Steinhardt <ps@xxxxxx>
---
  Documentation/glossary-content.txt | 14 ++++++++++++++
  1 file changed, 14 insertions(+)

diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt
index f7d98c11e3..d71b199955 100644
--- a/Documentation/glossary-content.txt
+++ b/Documentation/glossary-content.txt
@@ -638,6 +638,20 @@ The most notable example is `HEAD`.
  	An <<def_object,object>> used to temporarily store the contents of a
  	<<def_dirty,dirty>> working directory and the index for future reuse.
+[[def_special_ref]]special ref::
+	A ref that has different semantics than normal refs. These refs can be
+	accessed via normal Git commands but may not behave the same as a
+	normal ref in some cases.
++
+The following special refs are known to Git:
+
+ - "`FETCH_HEAD`" is written by linkgit:git-fetch[1] or linkgit:git-pull[1]. It
+   may refer to multiple object IDs. Each object ID is annotated with metadata
+   indicating where it was fetched from and its fetch status.
+
+ - "`MERGE_HEAD`" is written by linkgit:git-merge[1] when resolving merge
+   conflicts. It contains all commit IDs which are being merged.
+
  [[def_submodule]]submodule::
  	A <<def_repository,repository>> that holds the history of a
  	separate project inside another repository (the latter of




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux