Re: git-svn 1.5.3 does not understand grafts?

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

 



"Joakim Tjernlund" <joakim.tjernlund@xxxxxxxxxxxx> writes:

> hmm, this is rather confusing. How I am to know what commands
> deal with grafts? Appearently some plumbing does and some don't.

An easy to remember rule is that almost everybody knows about
grafts, but there are a few exceptions so that people (read:
Porcelains) who _must_ know the true ancestry can find it out
using them.  Making use of grafts optional defeats the purpose
of the grafts -- they ought to be mostly transparent and used
without you asking.

If you have a graft that makes commit X a parent of commit Y
when it actually is not, and another that makes commit Z a
parent of commit X when it actually is not, "git cat-file commit
Y^" or "git rev-parse Y^" (they are at the level as low as any
plumbing could go) would talk about X even though it is not
really the parent, so in that sense even these lowest level
plumbing commands "deal with" grafts.  At the same time
"cat-file" of the object X itself is the way to view the true
ancestry information of the named object, and shows the "raw
bits" without grafts, thus not making Z a parent of it.  It is
an escape hatch.

Putting it another way, when referring to an object using
ancestry chain traversal, you can always count on that the graft
information is used.  IOW, you always uses names with graft (so
X == Y^ and Z == X^ == Y^^ in the above example) to refer to the
object you are interested in.  You use "cat-file" to find out the
true ancestry of _that_ particular object you are interested in,
or you use "show --parents" to find out the grafted ancestry.

-
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