Re: [PATCH 1/9] refs: Introduce pseudoref and per-worktree ref concepts

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

 



From: "David Turner" <dturner@xxxxxxxxxxxxxxxx>
Add glossary entries for both concepts.

Pseudorefs and per-worktree refs do not yet have special handling,
because the files refs backend already handles them correctly.  Later,
we will make the LMDB backend call out to the files backend to handle
per-worktree refs.

Signed-off-by: David Turner <dturner@xxxxxxxxxxxxxxxx>
---
Documentation/glossary-content.txt | 17 +++++++++++++++++
refs.c                             | 23 +++++++++++++++++++++++
refs.h                             |  2 ++
3 files changed, 42 insertions(+)

diff --git a/Documentation/glossary-content.txt b/Documentation/glossary-content.txt
index ab18f4b..d04819e 100644
--- a/Documentation/glossary-content.txt
+++ b/Documentation/glossary-content.txt
@@ -411,6 +411,23 @@ exclude;;
 core Git. Porcelains expose more of a <<def_SCM,SCM>>
 interface than the <<def_plumbing,plumbing>>.

+[[def_per_worktree_ref]]per-worktree ref::
+ Refs that are per-<<def_worktree,worktree>>, rather than
+ global.  This is presently only <<def_HEAD,HEAD>>, but might
+ later include other unsuual refs.
s/unsuual/unusual/

+
+[[def_pseudoref]]pseudoref::
+ Files under `$GIT_DIR` whose names are all-caps, and that

s/and that/excluding 'HEAD', which is special./ ?

+ contain a line consisting of a <<def_sha1,SHA-1>> followed by

s/contain/Pseudorefs typically contain/ perhaps?

+ a newline, and optionally 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 not 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.
+
[[def_pull]]pull::
 Pulling a <<def_branch,branch>> means to <<def_fetch,fetch>> it and
 <<def_merge,merge>> it.  See also linkgit:git-pull[1].
[...]

The key points I'd picked out were:

*    ALL_CAPS names

*    acts like a ref <<>>, but separate from refs

*    HEAD is special and not a pseudoref (i.e. see <<HEAD>>).

*    CHERRY_PICK_HEAD and REVERT_HEAD are examples.

*    three way split: refs/; pseudorefs; HEAD.

*    one-level ALL_CAPS names are per worktree

*    is a file in $GIT_DIR/ that always contains at least a SHA1.

--
Philip
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



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