From: Poojan Wagh <poojanwagh@gmail.com>
To: git@vger.kernel.org
Subject: Re: Q: How to tag individual files
Date: Sun, 13 Jul 2008 01:14:51 -0500 [thread overview]
Message-ID: <g5c6hs$glo$1@ger.gmane.org> (raw)
In-Reply-To: <20080713053537.GA32746@spearce.org>
Thanks, Shawn, for the clarification. Your explanation--together with
http://www.kernel.org/pub/software/scm/git/docs/user-manual.html#the-object-database--
makes it clear.
So, to summarize (with the intent of fixing any misunderstanding on my
part): You can tag the contents of files (blobs), but not files per se,
because:
1. Git doesn't store files as an object as such. It stores the contents
of files ("blobs")
2. Git stores directories (which define their constituent file names and
contents=>blobs) as "tree" objects. So, the association between a file's
name and a its contents occurs in a tree object.
One thing I notice about this structure is that a tree object can at
least theoretically give me what I want: the ability to have files
organized with labels (a la gmail) rather than folders--I would like to
be able to have a single file show up under many different labels rather
than mutually exclusive folders/directories. I know that this won't
happen automatically, but it's nice to know that I *could* do it if I
wanted to.
Thanks!
P.S. I also found http://www.gitcasts.com/posts/browsing-git-objects
useful for as illustration of all the object structure.
Shawn O. Pearce wrote:
> Poojan Wagh <poojanwagh@gmail.com> wrote:
>> The crash course at: http://git.or.cz/course/svn.html says:
>>
>>> You usually tag commits but if you want, you can tag files (or trees,
>>> but that's a bit low-level) as well.
>> I've done a bit of searching, and I can't for the life of me figure out
>> how to tag an individual file. Help from the group would be much
>> appreciated. Thanks.
>
> You don't tag individual files. Git is snapshot based. You tag
> the entire project at once.
>
> The comment you quoted was talking about tagging a single listing of
> blobs (a tree) or a single blob (stream of bytes). This can be handy
> in rare cases. In the linux kernel for example the prior history
> was stored by tagging the tree of that prior history, as there was
> no git based history preceeding that snapshot, so there were no
> commits to tag. In git.git Junio publishes his GnuPG public key
> as a tagged blob, making it available to validate signed tag objects.
>
> So you can't tag individual files. The comment is a bit misleading
> and gets far too low-level for an otherwise high-level conversion
> guide.
>
next prev parent reply other threads:[~2008-07-13 6:16 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-13 4:21 Q: How to tag individual files Poojan Wagh
2008-07-13 5:35 ` Shawn O. Pearce
2008-07-13 6:14 ` Poojan Wagh [this message]
2008-07-13 10:20 ` Petr Baudis
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='g5c6hs$glo$1@ger.gmane.org' \
--to=poojanwagh@gmail.com \
--cc=git@vger.kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.