git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 0/2] user-manual: new "getting started" section

From
Junio C Hamano <gitster@pobox.com>
Date
Oct 25, 2009, 03:08 UTC
Message-ID
<7vy6n02mrk.fsf@alter.siamese.dyndns.org>
In-Reply-To
<94a0d4530910241316r3fc4136emd036d18aa45a4192@mail.gmail.com>
Felipe Contreras <felipe.contreras@gmail.com> writes:
>> I'm inclined to to discard the first patch.
>
> And you decided to mention that after many people including you, have
> agreed that it's a good idea?

This line of argument is wrong and counterproductive. Of course, after reading what others said and thinking about it more myself, I can change my mind based on their opinions. Otherwise there is no point in having any mailing list discussion.

People propose changes, and two things can happen:
 (1) I and others may think it is not a good idea, clarifying argument may
     come from the original author and/or additional arguments defending
     the change may come from others.  People who thought it was not a
     good idea may change their mind, and the patch gets accepted.  git
     becomes better.
     If people cannot change their mind, it is useless to make supporting
     arguments to nudge them to reconsider.
 (2) I and others may think it is a good idea, a counterargument comes,
     and people who originally thought it was a good idea may change their
     mind, and the patch does not go in.  git is saved from becoming
     worse.
     If people cannot change their mind, it is useless to make counter-
     arguments to nudge them to reconsider.

Yes, I originally thought a "getting started" section may be a good idea. There is no need to point it out to me.

But after I saw that the original author said "_if_ we have to do this, keep it short", the comment made me question my previous assumption one more time: is it really a good idea to add "getting started", and is it a good idea to cover the config command in that section?

After re-reading the first thousand lines of the user manual, I realized that the explanation was carefully laid out so that you do not have to be taught "git config" in the beginning to be able to follow it. Now, after applying your latest patch, if we do not have to teach "config" there, what else is left in the section? --- Nothing.

What conclusion do you expect me to reach after such a consideration, other than "then let's not have it"?

> If you read the results of the last git survey you'll see that the
> area that needs most improvement is the documentation.

Yes, I did read it, but what about it? You already know we both want to have a good set of documentation.

Remember that "changing" and "improving" is different; some changes may not necessarily be improvements. "It needs improving, so let's change it" is not an argument. This isn't obviously limited to the documentation but also applies to UI changes.

> Also I still
> see many people doing commits without configuring the user name and
> email properly and so I've tried very hard to improve the user manual
> to make it easier for them to understand they must do that.

The "unconfigured user.name is wrong" is the least of the problems for people who start commiting without understanding the basic principles. People may ask "how do I publish my changes", "how do I discard the commit" and "how do I modify the commit two days ago", and teaching them things like "reset HEAD^" and "rebase -i", without making them aware of the implications will do disservice to them in the long run. That kind of self-teaching is already done by people (and for doing so sometimes they hurt themselves) by diving into man pages of individual commands before understanding the distributedness and its implications, and my hope has always been to keep the user-manual a document that teaches things in one coherent and hopefully the most useful order.

The early part of the manual (the first thousand lines) does not talk about making commits but lays out the groundwork for a good reason. And in order to follow the current structure of the manual, you do not need to be taught "config" as the first thing.

It is a totally different story if we are going to rewrite the manual in such a way that we start from "hello world". I am not necessarily saying it is a bad way to teach [*1*].

But the current "starting from a sightseer, while learning the basic concepts like reachability and stuff, and then learn to build on top of others' work" structure would also be a valid way to teach, and in that presentation order, I do not think teaching "config" sits well at the beginning.

[Footnote]

*1* Indeed, the book I did recently does just that, starting from a solo user who develops on his own from scratch, and then uses another repository as a back up repository, and then works on two different machines with a repository each, still working solo no the same project. After that working with other users collaboratively comes. If you teach in that order, you have to cover config before you cover commit, which pretty much means config is mentioned at the very beginning.

Previous: J. Bruce FieldsNext: Felipe Contreras
Message 12 of 28 in “user-manual: new "getting started" section”
  1. 0/2 user-manual: new "getting started" sectionFelipe Contreras, Oct 24, 2009
  2. 1/2 user-manual: add global config sectionFelipe Contreras, Oct 24, 2009
  3. 2/2 user-manual: simplify the user configurationFelipe Contreras, Oct 24, 2009
  4. Nanako ShiraishiOct 24, 2009
  5. Felipe ContrerasOct 24, 2009
  6. Björn SteinbrinkOct 24, 2009
  7. Felipe ContrerasOct 24, 2009
  8. Junio C HamanoOct 24, 2009
  9. Junio C HamanoOct 24, 2009
  10. Felipe ContrerasOct 24, 2009
  11. J. Bruce FieldsOct 25, 2009
  12. Junio C HamanoOct 25, 2009
  13. Felipe ContrerasOct 25, 2009
  14. Jonathan NiederOct 25, 2009
  15. Felipe ContrerasNov 11, 2009
  16. Michael J GruberNov 12, 2009
  17. Felipe ContrerasNov 12, 2009
  18. Nanako ShiraishiNov 13, 2009
  19. Felipe ContrerasNov 16, 2009
  20. Nanako ShiraishiNov 17, 2009
  21. J. Bruce FieldsNov 17, 2009
  22. Junio C HamanoNov 17, 2009
  23. Felipe ContrerasNov 17, 2009
  24. Junio C HamanoNov 17, 2009
  25. Felipe ContrerasNov 17, 2009
  26. Junio C HamanoNov 17, 2009
  27. Felipe ContrerasNov 18, 2009
  28. Matthieu MoyNov 17, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.