On Thu, 30 Nov 2006 18:44:41 -0800 (PST), Linus Torvalds wrote:Sure. There's no need to lie to about how things work. And I agree that would cause later problems. As far as getting the message out, we have several different ways to do that: 1. In-person presentations, demos, tutorials 2. Written tutorials 3. Reference documentation 4. Output from git commands 5. The default behavior of git commands And that list is roughly sorted from most to least "information bandwidth". The limited bandwidth at the bottom-most levels in my list, (together with the fact that people often start trying the tool at only those levels), means we have to be even that much more careful about the messaging there. In my experience, I think we succeed quite well at level 1. In person, we get immediate feedback from the user and it's easy to catch and cut-off any user confusion up-front. "Oh, you don't even need to run that command...use this instead", etc. As for the other levels, you hit on most of them in your comments: Yes, this is a big problem at level 3. Things like the "man git-diff" scare factor that Ted pointed out. So let's work to fix all of that. One trick with saying "we just need to document this better" to avoid the confusion is that approach assumes that the users are actually _reading_ the right documentation. Now, we're currently making this harder than it should be at level 4 by doing things like sending users to the documentation for update-index. But still, if we can make things less surprising in some cases _without_ needing the documentation, then we make it that much easier. Yes, adding lots of good examples to the written documentation will help, (anyone that reads it at least). ... ... So here you're arguing for documenting the heck out of "commit -a" at all of levels 1-4. If we're going to do that, why not just go the next tiny step and make it work as "git commit" by default, (which people _will_ try). If we can say, "come from hg or bzr and things will just work", people can try that, be satisfied that git isn't bizarre, and then we can teach where git's actually superior. Interesting. I do use -m almost exclusively. I do that for speed I think, (but I do do multi-line commit messages). The only drawback I was aware of was that I'm doing manual word wrapping, but I might start trying this to see information in the commit message, (instead I've been checking first with "git diff --cached"). I still don't see any lie here. If we all agree that "git commit -a" is the most commonly desired form, it's what users expect by default (based on _any_ other system they might be coming from), and we agree we need to mention it a lot more at every level of the documentation---given all that, why do we insist on having something else be the default? Because it gives us an opportunity to teach about the power of the index to anyone that gets confused and complains? That strategy ignores everyone that gets confused and just leaves without talking to us. I'm talking about changing the default of what "git commit" does, yes, but it can still be documented honestly as to what it really does and why. It would fit in just fine with Nico's new documentation for "git add" for example, and "git diff" doesn't need to be changed at all, (but it's documentation should be made much less scary). -Carl
| Peter Zijlstra | [PATCH 00/23] per device dirty throttling -v8 |
| david | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 005/196] Chinese: add translation of SubmittingDrivers |
| Vladislav Bolkhovitin | Re: Integration of SCST in the mainstream Linux kernel |
git: | |
| Gerrit Renker | [PATCH 03/37] dccp: List management for new feature negotiation |
| Frans Pop | svc: failed to register lockdv1 RPC service (errno 97). |
| David Miller | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| David Miller | [GIT]: Networking |
