From: "Björn Steinbrink" <B.Steinbrink@gmx.de>
To: Michael Witten <mfwitten@gmail.com>
Cc: Jeff King <peff@peff.net>,
Daniel Barkalow <barkalow@iabervon.org>,
Johan Herland <johan@herland.net>,
git@vger.kernel.org, David Abrahams <dave@boostpro.com>,
"J. Bruce Fields" <bfields@fieldses.org>
Subject: Re: [doc] User Manual Suggestion
Date: Sat, 25 Apr 2009 01:16:32 +0200 [thread overview]
Message-ID: <20090424231632.GB10155@atjola.homenet> (raw)
In-Reply-To: <b4087cc50904241518w625a9890vecdd36bb937e76d5@mail.gmail.com>
On 2009.04.24 17:18:44 -0500, Michael Witten wrote:
> On Fri, Apr 24, 2009 at 16:38, Jeff King <peff@peff.net> wrote:
> > On Fri, Apr 24, 2009 at 05:34:00PM -0400, Daniel Barkalow wrote:
> >
> >> I'd say that blobs and trees are an implementation detail of "the full
> >> content of a version of the project", not something conceptually
> >> important. Likewise, the date representation used in commits isn't
> > ...
> > No, that isn't critical for understanding how _commit_ operations work,
> > but I think that is exactly the sort of conceptual knowledge that let
> > people use git more fully.
>
> I think the key conlusion here is that the main concepts are *objects*
> and references to those objects. One type of object is not necessarily
> more low-level or high-level than another type of object; each type of
> object is the most important type of object for a particular task in
> or view of the git world.
>
> > I disagree. I think it's important to note that trees and blobs have a
> > name, and you can refer to them. Once you know that, the fact that you
> > can do:
> >
> > git show master
> > git show master:Documentation
> > git show master:Makefile
> >
> > just makes sense. You are always just specifying an object, but the type
> > is different for each (and show "does the right thing" based on object
> > type).
>
> In fact, I think it's important to note that the notation:
>
> git show master:Makefile
>
> actually involves a translation from a Unix filesystem address to a
> git object address that is then used to find the relevant data.
Hm? Resolving master:Makefile means to first find what master is, most
likely the shortname for refs/heads/master. That usually references a
commit object (by its name). The "<tree-ish>:<path>" syntax then causes
git to lookup the tree referenced by that commit (again, by its name).
And then the tree entry for "Makefile" is looked up, leading to the name
for the object identified by "master:Makefile".
> In fact, I think masking this kind of thing with a catch-all word
> 'reference' is a bad idea.
"master:Makefile" is not a reference. Just "master" is a shortname for a
reference, the full name might be refs/heads/master.
git has:
- object names (which happen to be SHA-1 hashes).
- references (which reference objects by their names)
- symbolic references (which reference other references by their names)
The "<tree-ish>:<path>" syntax is not called "reference".
> Rather than being hidden, it should be exposed: I think it would be
> beneficial to use the word 'address' rather than 'reference' when
> talking about the SHA-1 names. Then HEAD could be called a pointer
> variable, etc.
What's wrong with just calling the object name "object name"? References
are something different, and the above "master:Makefile" is yet a
different thing, using the "extended SHA1" syntax to identify an object.
> So, a pointer variable's value is an object address that is the
> location of an object in git 'memory'. I think using this approach
> would make things significantly more transparent.
But then HEAD would be a pointer pointer variable (symbolic ref), unless
you have a detached HEAD.
Björn
next prev parent reply other threads:[~2009-04-24 23:18 UTC|newest]
Thread overview: 90+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-22 19:38 [doc] User Manual Suggestion David Abrahams
2009-04-23 17:57 ` J. Bruce Fields
2009-04-23 18:37 ` Michael Witten
2009-04-23 20:16 ` Jeff King
2009-04-23 20:45 ` Michael Witten
2009-04-23 21:31 ` David Abrahams
2009-04-24 0:31 ` Michael Witten
2009-04-24 14:18 ` Jeff King
2009-04-24 14:20 ` J. Bruce Fields
2009-04-24 17:28 ` David Abrahams
2009-04-24 18:15 ` Jeff King
2009-04-24 19:00 ` David Abrahams
2009-04-24 20:24 ` Jeff King
2009-04-24 21:06 ` David Abrahams
2009-04-24 22:45 ` Björn Steinbrink
2009-04-25 0:39 ` David Abrahams
2009-04-26 23:35 ` Björn Steinbrink
2009-04-24 14:11 ` Jeff King
2009-04-24 14:30 ` Michael Witten
2009-04-24 14:33 ` Michael Witten
2009-04-24 15:04 ` Jeff King
2009-04-24 15:18 ` Michael Witten
2009-04-24 17:38 ` J. Bruce Fields
2009-04-24 18:27 ` Jeff King
2009-04-24 18:35 ` J. Bruce Fields
[not found] ` <34BD51FF-0908-48A8-BBBC-E27B0EFB32E5@boostpro.com>
2009-04-24 18:52 ` J. Bruce Fields
2009-04-25 10:35 ` Felipe Contreras
2009-04-24 19:12 ` Michael Witten
2009-04-23 21:26 ` David Abrahams
2009-04-23 22:51 ` Johan Herland
2009-04-24 0:30 ` Michael Witten
2009-04-24 20:30 ` Johan Herland
2009-04-24 21:34 ` Daniel Barkalow
2009-04-24 21:38 ` Jeff King
2009-04-24 22:18 ` Michael Witten
2009-04-24 22:25 ` Michael Witten
2009-04-24 23:11 ` Daniel Barkalow
2009-04-24 23:14 ` Jeff King
2009-04-24 23:18 ` Michael Witten
2009-04-24 23:31 ` Michael Witten
2009-04-24 23:35 ` Jeff King
2009-04-25 0:19 ` Michael Witten
2009-04-25 10:18 ` Felipe Contreras
2009-04-24 23:26 ` Michael Witten
2009-04-25 18:55 ` Daniel Barkalow
2009-04-25 19:16 ` Michael Witten
2009-04-25 19:24 ` Felipe Contreras
2009-04-25 19:36 ` David Abrahams
2009-04-25 20:53 ` Felipe Contreras
2009-04-26 11:28 ` Björn Steinbrink
2009-04-26 13:55 ` David Abrahams
2009-04-26 17:56 ` Björn Steinbrink
2009-04-26 20:17 ` David Abrahams
2009-04-26 22:25 ` Björn Steinbrink
2009-04-27 1:41 ` David Abrahams
2009-04-27 16:30 ` David Abrahams
2009-04-27 16:52 ` Michael Witten
2009-04-26 16:36 ` Michael Witten
2009-04-26 18:12 ` Björn Steinbrink
2009-04-26 20:20 ` David Abrahams
2009-04-25 0:41 ` David Abrahams
2009-04-24 23:16 ` Björn Steinbrink [this message]
2009-04-25 0:01 ` Michael Witten
2009-04-25 0:48 ` David Abrahams
2009-04-26 22:42 ` Björn Steinbrink
2009-05-02 15:53 ` Björn Steinbrink
2009-05-02 18:36 ` Michael Witten
2009-05-02 21:11 ` Björn Steinbrink
2009-05-02 23:13 ` Michael Witten
2009-05-02 23:32 ` Björn Steinbrink
2009-05-03 1:10 ` Michael Witten
2009-05-03 1:48 ` Björn Steinbrink
2009-05-03 1:18 ` Mark Lodato
2009-05-03 1:26 ` Michael Witten
2009-04-24 23:21 ` Daniel Barkalow
2009-04-24 23:25 ` Jeff King
2009-04-26 23:41 ` Björn Steinbrink
2009-04-24 23:29 ` Michael Witten
2009-04-27 0:00 ` Björn Steinbrink
2009-04-25 0:19 ` David Abrahams
2009-04-25 0:26 ` Michael Witten
2009-04-25 0:35 ` Jeff King
2009-04-25 0:53 ` David Abrahams
2009-04-29 6:34 ` Jeff King
2009-04-29 13:27 ` David Abrahams
2009-04-29 14:05 ` Jeff King
2009-04-24 2:29 ` J. Bruce Fields
2009-04-24 2:34 ` Michael Witten
2009-04-24 4:06 ` David Abrahams
2009-04-24 14:10 ` J. Bruce Fields
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090424231632.GB10155@atjola.homenet \
--to=b.steinbrink@gmx.de \
--cc=barkalow@iabervon.org \
--cc=bfields@fieldses.org \
--cc=dave@boostpro.com \
--cc=git@vger.kernel.org \
--cc=johan@herland.net \
--cc=mfwitten@gmail.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).