From: Jeff King Date: Thu, 10 May 2012 14:29:20 GMT Subject: Re: [PATCH 0/4] git-notes ui fixes regarding non-blobs notes Message-ID: <20120510142920.GA14711@sigill.intra.peff.net> In-Reply-To: <1336658701-9004-1-git-send-email-pclouds@gmail.com> On Thu, May 10, 2012 at 09:04:57PM +0700, Nguyen Thai Ngoc Duy wrote: > Thanks Jeff and Junio for all the comments. This is basically what you > (and I) agree in v1's thread. The first patch is a new one, to avoid > git-notes from converting everything to blobs. I don't restrict the > "show" case either because git-notes uses "git show", which is > capable of displaying all kinds of objects. Nice, this is much better than the previous round. I was surprised by the "git show" thing you mentioned, because I checked before that "git notes add -C HEAD^{tree}; git notes show" generated garbage. But the problem is that "-C $tree" was more broken than we realized. It actually copied the tree contents into a blob object, giving it a new sha1: $ git rev-parse HEAD^{tree} f799843170cdddbbdfec446e934bbccf94e0d2a7 $ git notes add -C HEAD^{tree} $ git notes list HEAD 587521811b7a5b84ed7cb48d11f9321ddcefd337 So it really was totally useless, and nobody could possibly have been using it to store a real tree object, experimental or otherwise. But I still like these patches better than just disallowing it, because they allow people to experiment with the idea. It's a little odd that we rewrite the object in the "-C" case at all; we should never even need to open the object. I guess it is just to make the code paths between "-c" and "-C" simpler. -Peff