git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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.
> 

  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 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).