> 'git diff' / 'git diff --cached' / 'git diff HEAD' is about use cases > (or "user stories"). 'git diff NEXT WTREE' / 'git diff HEAD NEXT' / > / 'git diff HEAD WTREE' are about mechanism. Would you say that the UNIX commands "find", "grep", and "xargs" are about use cases? I rarely use them by themselves. They clearly manipulate concepts: files and lines. So, it's easy for me to think what this does: find . | grep "\.h" | xargs grep MyClass | grep public I'm trying to find concepts the concepts that git manipulates and I think NEXT and WTREE are part of those concepts. It is my opinion that if we focus on concepts, we'll be able to create general commands and that the user will be able to combine the commands in new and interesting ways, like I combined the UNIX commands above. I believe in "common" use cases. The common case should be fast. I have always recommended still allowing "git diff" by itself. BUT if we focus only on use cases, we'll create tools that are specific to ONE thing and are NOT general. They will be harder for users to conceptualize and harder to combine in new and interesting ways. -- 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