Re: Q: How to tag individual files

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

 



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@xxxxxxxxx> 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.


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

  Powered by Linux