From: "J. Bruce Fields" <bfields@fieldses.org>
To: Theodore Tso <tytso@mit.edu>
Cc: linux@horizon.com, git@vger.kernel.org
Subject: Re: [DRAFT] Branching and merging with git
Date: Fri, 17 Nov 2006 13:21:57 -0500 [thread overview]
Message-ID: <20061117182157.GC11882@fieldses.org> (raw)
In-Reply-To: <20061117153246.GA20065@thunk.org>
On Fri, Nov 17, 2006 at 10:32:46AM -0500, Theodore Tso wrote:
> Personally, I think this information is actually more important to an
> end-user than the current "part two" of the tutorial, which discusses
> the object database and the index file. Perhaps this should be "part
> 2", and the object database and index file should become "part 3"?
Yeah, the really difficult problem here is figuring out how to organize
the documentation. There are a few needs:
1. Quick-start/task-based documentation
- We want to "sell" git to the beginning user by getting
them up and running as quickly as possible.
- We need to help people with some limited needs--
testers who just need to download the latest linux git
tree, or bisect, or whatever.
- It's also a fun way to demonstrate the richness of
some git features (e.g. history explanation).
2. Conceptual background
- People need to understand the commit graph, branches,
merging, the index file (gack), pack files, etc.--some of
that can be put off a little while, some of it can't.
3. Reference documentation
The man pages do most of #3, but maybe they could be better organized--I
think people aren't finding stuff there that they should be.
Numbers 1 and 2 are scattered around git(7), the two-part tutorial, the
git-core tutorial, etc.
> It might also be a good to consider moving some of the "discussion"
> portion the top-level git(7) man page into the object database and
> index file discussion. Right now, the best way to introduce git's
> concepts (IMHO), is to start with the part 1 of the tutorial, then go
> into the your draft branch/merging with git, then the current part 2
> of the tutorial, and then direct folks to read the "discussion"
> section of git(7). Only then do they really have enough background
> understanding of the fundamental concepts of git that they won't get
> confused when they start talking to other git users, on the git
> mailing list, for example.
>
> It would be nice if there was an easy way to direct users through the
> documentation in a way which makes good pedagogical sense. Right now,
> one of the reasons why life gets hard for new users is that the
> current tutorials aren't enough for them to really undersatnd what's
> going on at a conceptual level. And if users start using "everyday
> git" as a crutch, without the right background concepts, the human
> brain naturally tries to intuit what's happening in the background,
> but without reading the background docs, git is different enough that
> they will probably get it wrong, which means more stuff that they have
> to unlearn later.
I agree. Unfortunately, people who need to use git but aren't
study-the-manual-first types *are* going to just dive in whether we want
them to or not, so we have to make it easy for them to pick up what they
need as they go.
How about this as a strawman "git user's manual" outline:
I. Quick-start: drawn from the tutorial part I and everyday.txt?
II. Basic git concepts, drawn from "discussion" in git(7) (the
README), tutorial part II, this branching-and-merging tutorial, etc.:
1. The commit graph and the object database
2. References
3. Fetching and pulling, remotes
4. The index file
III. Using git:
1. History exploration
2. merge resolution
3. pack files, fsck, repository maintenance
4. pushing, setting up a public repo
IV. Advanced examples: drawn from the howto directories,
cvs-migration.txt,...
1. More complicated commandline magic, scripting
(history exploration with git-rev-list, etc.)
2. History re-writing: cherry-picking, rebasing,...
3. Setting up a shared public repo?
4. Migration to/from other SCM's.
IV. Technical details: core-tutorial.txt, plumbing, code tours, etc.
Chapter II is the prerequisite for everything else, so a lot of thought
has to be given to treating exactly what's necessary there and no more.
Maybe more of it could be mixed into chapter I.
It has to be readable in order by the 10% of people who actually like to
read manuals, and easy to pick up in the middle for the 90% who will
just dive into the section they were told they need to read to
understand some particular problem.
In particular, ideally only I and II would really be sequential, and
the rest would be readable in any order.
next prev parent reply other threads:[~2006-11-17 18:22 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-16 22:17 [DRAFT] Branching and merging with git linux
2006-11-16 23:47 ` Junio C Hamano
2006-11-17 1:13 ` linux
2006-11-17 1:31 ` Junio C Hamano
2006-11-17 1:09 ` Junio C Hamano
2006-11-17 3:17 ` linux
2006-11-17 5:55 ` Junio C Hamano
2006-11-17 9:37 ` Jakub Narebski
2006-11-17 9:41 ` Jakub Narebski
2006-11-17 10:37 ` Jakub Narebski
2006-11-17 15:32 ` Theodore Tso
2006-11-17 15:57 ` Sean
2006-11-17 16:19 ` Nguyen Thai Ngoc Duy
2006-11-17 16:25 ` Marko Macek
2006-11-17 16:33 ` Petr Baudis
2006-11-17 16:34 ` Sean
[not found] ` <20061117113404.810fd4ea.seanlkml@sympatico.ca>
2006-11-17 16:53 ` Petr Baudis
2006-11-17 17:01 ` Sean
[not found] ` <20061117120154.3eaf5611.seanlkml@sympatico.ca>
2006-11-17 21:31 ` Petr Baudis
2006-11-17 22:36 ` Chris Riddoch
2006-11-17 22:50 ` Petr Baudis
2006-11-17 23:30 ` Sean
2006-11-17 18:21 ` J. Bruce Fields [this message]
2006-11-18 0:13 ` linux
2006-11-18 0:32 ` Jakub Narebski
2006-11-18 0:40 ` Junio C Hamano
2006-11-18 1:11 ` Junio C Hamano
2006-11-20 23:51 ` [DRAFT 2] " linux
2006-11-22 11:02 ` [Patch to DRAFT 2 (1/2)] " Junio C Hamano
2006-11-22 11:02 ` [Patch to DRAFT 2 (2/2)] " Junio C Hamano
2006-11-22 13:36 ` Rene Scharfe
2006-12-04 1:19 ` [DRAFT 2] " J. Bruce Fields
2006-12-04 7:23 ` J. Bruce Fields
2006-12-04 10:56 ` Johannes Schindelin
2006-12-15 21:38 ` Jakub Narebski
2006-12-15 21:41 ` J. Bruce Fields
2006-11-22 11:51 ` [DRAFT] " Junio C Hamano
2006-11-19 17:50 ` J. Bruce Fields
2006-11-19 17:59 ` Git manuals Petr Baudis
2006-11-19 18:16 ` Jakub Narebski
2006-11-19 19:50 ` Robin Rosenberg
2006-11-19 19:36 ` J. Bruce Fields
2006-11-26 4:01 ` [PATCH] Documentation: add a "git user's manual" J. Bruce Fields
2006-11-17 17:44 ` [DRAFT] Branching and merging with git J. Bruce Fields
2006-11-17 18:16 ` Jakub Narebski
2007-01-03 17:04 ` Theodore Tso
2007-01-03 17:08 ` Junio C Hamano
2007-01-04 5:28 ` linux
2007-01-04 6:11 ` Junio C Hamano
2007-01-07 23:44 ` J. Bruce Fields
2007-01-08 0:24 ` Junio C Hamano
2007-01-08 2:35 ` J. Bruce Fields
2007-01-08 13:04 ` David Kågedal
2007-01-08 14:03 ` Theodore Tso
2007-01-09 2:41 ` J. Bruce Fields
2007-01-09 8:46 ` Andreas Ericsson
2007-01-09 15:49 ` J. Bruce Fields
2007-01-09 16:58 ` Theodore Tso
2007-01-10 4:15 ` J. Bruce Fields
2007-01-08 0:40 ` Theodore Tso
2007-01-08 0:46 ` J. Bruce Fields
2007-01-08 1:22 ` Jakub Narebski
2007-01-08 1:46 ` Horst H. von Brand
2007-01-08 2:22 ` J. Bruce Fields
2007-01-08 12:38 ` Guilhem Bonnefille
2007-01-09 4:17 ` J. Bruce Fields
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20061117182157.GC11882@fieldses.org \
--to=bfields@fieldses.org \
--cc=git@vger.kernel.org \
--cc=linux@horizon.com \
--cc=tytso@mit.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.