Re: [doc] User Manual Suggestion

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

 



On 2009.04.24 18:29:22 -0500, Michael Witten wrote:
> On Fri, Apr 24, 2009 at 18:21, Daniel Barkalow <barkalow@xxxxxxxxxxxx> wrote:
> > "git blame 1a2b3c:Makefile" worked despite this technically being
> > incoherent.
> 
> It seems to work on my end, and it's perfectly coherent if you
> consider git-blame to be overloaded to handle both pointers and
> addresses (or references and object names, if you prefer).

Fails for me. And it's technically incoherent in that it makes no sense
to use blame with a blob object. 1a2b3c:Makefile identifies "just" a
blob object. And that has no parents and no history, just contents. Only
the commit objects have the references that connect them to form a
history.

For example, you could have a history like this:

A---B---C---D---E

And a file "foo" that has the same contents for A and E. Then "A:foo"
and "E:foo" lead to the same blob object, and you can't uniquely go from
that blob object to any commit object. So technically, you can't tell if
"git blame E:foo" means "git blame E foo" or "git blame A foo" (and you
can add a bunch of complexity by having, for example, a second file
with a different name that had the same content at some point).

To make that coherent, you must change the definition of the
<tree-ish>:<path> syntax so that the context in which the path is
resolved is kept, it must no longer just identify an object, but
something more complex.

Björn
--
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]