On Sat, Oct 30, 2010 at 08:12:27PM -0700, Junio C Hamano wrote: > Nguyán ThÃi Ngác Duy <pclouds@xxxxxxxxx> 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 <pclouds@xxxxxxxxx> > > 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? Yes. --8<-- diff --git a/Documentation/git-diff.txt b/Documentation/git-diff.txt index dd1fb32..518e46b 100644 --- a/Documentation/git-diff.txt +++ b/Documentation/git-diff.txt @@ -32,7 +32,9 @@ directories. This behavior can be forced by --no-index. This form is to view the changes you staged for the next commit relative to the named <commit>. Typically you would want comparison with the latest commit, so if you - do not give <commit>, it defaults to HEAD. + do not give <commit>, it defaults to HEAD. If HEAD does + not exist (e.g. unborn branches) and <commit> is not + given, it shows all staged changes. --staged is a synonym of --cached. 'git diff' [--options] <commit> [--] [<path>...]:: --8<-- -- Duy -- 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