git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 6/7] user-manual: start revising "internals" chapter

From
JFJ. Bruce Fields <bfields@citi.umich.edu>
Date
Apr 16, 2007, 04:37 UTC
Message-ID
<31842.9091749296$1176698263@news.gmane.org>
In-Reply-To
<11766982362066-git-send-email->
From: J. Bruce Fields <bfields@citi.umich.edu>
Minor revisions, cross-references.
Signed-off-by: "J. Bruce Fields" <bfields@citi.umich.edu>
---
 Documentation/user-manual.txt |   38 ++++++++++++++++++++------------------
 1 files changed, 20 insertions(+), 18 deletions(-)
diff --git a/Documentation/user-manual.txt b/Documentation/user-manual.txt
index bff072f..c32aaef 100644
--- a/Documentation/user-manual.txt
+++ b/Documentation/user-manual.txt
@@ -2315,8 +2315,8 @@ options mentioned above.
 Git internals
 =============
 
-There are two object abstractions: the "object database", and the
-"current directory cache" aka "index".
+Git depends on two fundamental abstractions: the "object database", and
+the "current directory cache" aka "index".
 
 The Object Database
 -------------------
@@ -2331,22 +2331,23 @@ All objects have a statically determined "type" aka "tag", which is
 determined at object creation time, and which identifies the format of
 the object (i.e. how it is used, and how it can refer to other
 objects).  There are currently four different object types: "blob",
-"tree", "commit" and "tag".
+"tree", "commit", and "tag".
 
-A "blob" object cannot refer to any other object, and is, like the type
-implies, a pure storage object containing some user data.  It is used to
-actually store the file data, i.e. a blob object is associated with some
-particular version of some file. 
+A <<def_blob_object,"blob" object>> cannot refer to any other object,
+and is, as the name implies, a pure storage object containing some
+user data.  It is used to actually store the file data, i.e. a blob
+object is associated with some particular version of some file. 
 
-A "tree" object is an object that ties one or more "blob" objects into a
-directory structure. In addition, a tree object can refer to other tree
-objects, thus creating a directory hierarchy. 
+A <<def_tree_object,"tree" object>> is an object that ties one or more
+"blob" objects into a directory structure. In addition, a tree object
+can refer to other tree objects, thus creating a directory hierarchy. 
 
-A "commit" object ties such directory hierarchies together into
-a DAG of revisions - each "commit" is associated with exactly one tree
-(the directory hierarchy at the time of the commit). In addition, a
-"commit" refers to one or more "parent" commit objects that describe the
-history of how we arrived at that directory hierarchy.
+A <<def_commit_object,"commit" object>> ties such directory hierarchies
+together into a <<def_DAG,directed acyclic graph>> of revisions - each
+"commit" is associated with exactly one tree (the directory hierarchy at
+the time of the commit). In addition, a "commit" refers to one or more
+"parent" commit objects that describe the history of how we arrived at
+that directory hierarchy.
 
 As a special case, a commit object with no parents is called the "root"
 object, and is the point of an initial project commit.  Each project
@@ -2356,9 +2357,10 @@ has two or more separate roots as its ultimate parents, that's probably
 just going to confuse people.  So aim for the notion of "one root object
 per project", even if git itself does not enforce that. 
 
-A "tag" object symbolically identifies and can be used to sign other
-objects. It contains the identifier and type of another object, a
-symbolic name (of course!) and, optionally, a signature.
+A <<def_tag_object,"tag" object>> symbolically identifies and can be
+used to sign other objects. It contains the identifier and type of
+another object, a symbolic name (of course!) and, optionally, a
+signature.
 
 Regardless of object type, all objects share the following
 characteristics: they are all deflated with zlib, and have a header
-- 
1.5.1.1.98.gedb4f
Previous: J. Bruce FieldsNext: J. Bruce Fields
Message 9 of 10 in “Documentation: minor edits of git-lost-found manpage”
  1. 1/7 Documentation: minor edits of git-lost-found manpageJ. Bruce Fields, Apr 16, 2007
  2. 2/7 Documentation: clarify git-checkout -f, minor editingJ. Bruce Fields, Apr 16, 2007
  3. Junio C HamanoApr 16, 2007
  4. J. Bruce FieldsApr 17, 2007
  5. git-commit.txt: better warning about -f optionJ. Bruce Fields, Apr 17, 2007
  6. 3/7 Documentation: clarify track/no-track option.J. Bruce Fields, Apr 16, 2007
  7. 4/7 user-manual: fix discussion of default cloneJ. Bruce Fields, Apr 16, 2007
  8. 5/7 user-manual: detached HEADJ. Bruce Fields, Apr 16, 2007
  9. 6/7 user-manual: start revising "internals" chapterJ. Bruce Fields, Apr 16, 2007
  10. 7/7 user-manual: use detached head when rewriting historyJ. Bruce Fields, Apr 16, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.