Re: [PATCH] Add examples section to 'git fetch' manual

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Junio C Hamano
Date: Sunday, April 13, 2008 - 11:56 am

Teemu Likonen <tlikonen@iki.fi> writes:


While this may technically be correct (and I'll say upfront that all of
your "examples" may technically be correct), I would suggest strongly
against putting this into EXAMPLES section.  People look at examples
section to look up something they need to do often; the section should
describe the best practices we can suggest them in real life.

The above command line is a _great_ way to explain what happens under the
hood when you have the matching configuration in .git/config for the
remote, so that people would know how to update .git/config entries from
what git-clone and "git-remote add" give them by default to suit their
needs (e.g. instead of storing all branches in remotes/origin/*, you can
configure to only fetch and store a few selected branches).  But, fetching
from somewhere and storing it explicitly _from the command line_ like your
example command line is something you would _never_ do in real life if you
know git.


And this example is even worse, as the common example is to have remote
name between "remotes" and "pu".


This one is a fine example of a one-shot command to look at what they
have without actually affecting your own history.  Use of this form in
real life is very sane.


This is a wrong example on multiple counts (this is one of the worst one
in your change, so I'll explain in more detail than for others).

First of all, think about the reason _why_ the convention is to use a
separate namespace under remotes/ per remote.  It is to allow us to use
the names that correspond to what the remote repository uses without
having to worry about name collisions, and the reason we took pains to
implement the mechanism to allow you to use such corresponding names is to
avoid having to remember "what she calls master is what I call pu".

"I want to make sure I can tell my master and her master apart without
confusing myself, so I'd call mine master and call hers alice/master" is
the recommended use pattern which "git clone" and "git remote add" give
the user.  An EXAMPLE that deviates from it without explaining why/when it
is a good thing to do is BAD.  Remember, many people blindly copy and
paste the examples section without thinking, assuming that they suggest
the best practice.

If you have nickname "alice" defined, you are by definition interacting
with her regularly.  If you are doing a one-off with such a repository,
running "git fetch alice master" and operating on the resulting FETCH_HEAD
(and you typically use tag or local branch if you want to mark that
commit, with "git tag" or "git branch"), would be much less error prone,
less confusing, and more straightforward recommended approach.  Typically,
you would have the usual refs/heads/*:refs/remotes/alice/* fetch refspec,
so you would not even say "master" and instead run "git fetch alice" and
look at "remotes/alice/master".

Your above command line again may be a great way to explain what you could
do and what the mechanism is equipped to allow you to, but I do not think
there is any reason to use it in the real life.  It should not be in the
EXAMPLE section.


This is a valid thing to add to the examples section, although I suspect
people would already know it when they encouter this page.

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
git annoyances, Ingo Molnar, (Wed Apr 9, 3:14 am)
Re: git annoyances, Björn, (Wed Apr 9, 3:41 am)
Re: git annoyances, Jeff King, (Wed Apr 9, 7:57 am)
Re: git annoyances, Avery Pennarun, (Wed Apr 9, 10:08 am)
Re: git annoyances, Daniel Barkalow, (Wed Apr 9, 12:21 pm)
Friendly refspecs (Was: Re: git annoyances), Teemu Likonen, (Wed Apr 9, 1:08 pm)
Re: Friendly refspecs (Was: Re: git annoyances), Avery Pennarun, (Wed Apr 9, 1:32 pm)
Re: Friendly refspecs (Was: Re: git annoyances), Jeff King, (Wed Apr 9, 1:34 pm)
Re: git annoyances, Ingo Molnar, (Wed Apr 9, 1:41 pm)
Re: git annoyances, Junio C Hamano, (Wed Apr 9, 2:04 pm)
Re: Friendly refspecs, Junio C Hamano, (Wed Apr 9, 2:21 pm)
Re: git annoyances, Jon Loeliger, (Wed Apr 9, 2:39 pm)
Re: git annoyances, Jeff King, (Wed Apr 9, 2:45 pm)
Re: Friendly refspecs (Was: Re: git annoyances), Teemu Likonen, (Wed Apr 9, 3:25 pm)
Re: Friendly refspecs (Was: Re: git annoyances), Jeff King, (Wed Apr 9, 3:51 pm)
Re: git annoyances, Nicolas Pitre, (Wed Apr 9, 4:45 pm)
Re: git annoyances, André Goddard Rosa, (Wed Apr 9, 4:56 pm)
Re: Friendly refspecs (Was: Re: git annoyances), Jeff King, (Wed Apr 9, 5:03 pm)
Re: Friendly refspecs (Was: Re: git annoyances), Jeff King, (Wed Apr 9, 5:11 pm)
Re: git annoyances, Jean-Christian de Rivaz, (Wed Apr 9, 11:08 pm)
Re: Friendly refspecs, Teemu Likonen, (Thu Apr 10, 12:38 am)
Re: Friendly refspecs, Junio C Hamano, (Thu Apr 10, 12:51 am)
Re: Friendly refspecs, Jeff King, (Thu Apr 10, 1:03 am)
Re: git annoyances, Sverre Rabbelier, (Thu Apr 10, 1:19 am)
Re: git annoyances, Karl , (Thu Apr 10, 1:41 am)
git-bisect annoyances, Ingo Molnar, (Thu Apr 10, 4:47 am)
Re: git annoyances, Daniel Barkalow, (Thu Apr 10, 7:08 am)
Re: git annoyances, Avery Pennarun, (Thu Apr 10, 8:05 am)
Re: git annoyances, Govind Salinas, (Thu Apr 10, 12:45 pm)
Re: git-bisect annoyances, Christian Couder, (Thu Apr 10, 10:41 pm)
Re: git-bisect annoyances, Junio C Hamano, (Thu Apr 10, 10:56 pm)
Re: git annoyances, Karl , (Fri Apr 11, 12:00 am)
Re: git annoyances, Luciano Rocha, (Fri Apr 11, 3:15 am)
Re: git annoyances, Wincent Colaiuta, (Fri Apr 11, 3:27 am)
Re: git-bisect annoyances, Ingo Molnar, (Fri Apr 11, 4:41 am)
Re: [PATCH] When a remote is added but not fetched, tell t ..., Johannes Schindelin, (Fri Apr 11, 8:21 am)
Re: [PATCH] Default to fetching a remote after adding it., Stephen Sinclair, (Fri Apr 11, 12:17 pm)
Re: [PATCH] Default to fetching a remote after adding it., Wincent Colaiuta, (Fri Apr 11, 12:36 pm)
Re: git-bisect annoyances, Christian Couder, (Fri Apr 11, 11:56 pm)
Re: [PATCH] Default to fetching a remote after adding it., Johannes Schindelin, (Sat Apr 12, 7:33 am)
Re: [PATCH] Default to fetching a remote after adding it., Johannes Schindelin, (Sat Apr 12, 8:24 am)
Re: Friendly refspecs, Teemu Likonen, (Sun Apr 13, 2:31 am)
[PATCH] Add examples section to 'git fetch' manual, Teemu Likonen, (Sun Apr 13, 2:34 am)
Re: [PATCH] Add examples section to 'git fetch' manual, Junio C Hamano, (Sun Apr 13, 11:56 am)
Re: [PATCH] Add examples section to 'git fetch' manual, Matt Graham, (Sun Apr 13, 12:48 pm)
Re: [PATCH] Add examples section to 'git fetch' manual, Teemu Likonen, (Sun Apr 13, 1:05 pm)
Re: [PATCH] Add examples section to 'git fetch' manual, Junio C Hamano, (Sun Apr 13, 6:02 pm)
Re: Friendly refspecs, Jeff King, (Tue Apr 15, 8:48 pm)
Re: Friendly refspecs, Jeff King, (Tue Apr 15, 9:25 pm)
Re: Friendly refspecs, Junio C Hamano, (Tue Apr 15, 9:41 pm)
Re: Friendly refspecs, Jeff King, (Tue Apr 15, 9:47 pm)
Re: Friendly refspecs, Daniel Barkalow, (Wed Apr 16, 8:42 am)