From: Junio C Hamano Date: Sun, 31 Oct 2010 03:12:27 GMT Subject: Re: [PATCH v2] diff: support --cached on unborn branches Message-ID: <7vwroz3vj8.fsf@alter.siamese.dyndns.org> In-Reply-To: <1288437377-30405-1-git-send-email-pclouds@gmail.com> Nguyễn Thái Ngọc Duy writes: > "git diff --cached" (without revision) used to mean "git diff --cached > HEAD" (i.e. the user was too lazy to type HEAD). This "correctly" > failed when there was no commit yet. But was that correctness useful? > > This patch changes the definition of what particular command means. > It is a request to show what _would_ be committed without further "git > add". The internal implementation is still the same "git diff > --cached HEAD" when HEAD exists, but when there is no commit yet, it > compares the index with an empty tree object to achieve the desired > result. > > Signed-off-by: Nguyễn Thái Ngọc Duy Will take a look at it, and queue. Thanks. > "git diff --cached HEAD" does fail, but I don't really care. I _do_ care, and so should you. And I think it _should_ fail, if the user explicitly asked to compare the index with HEAD that does not exist yet. As we are updating the semantics of a Porcelain command, there should be an update that explains the new usage in the documentation, no?