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

Re: [PATCH] Documentation/git-checkout: make doc. of checkout <tree-ish> clearer

From
CMChristoph Michelbach <michelbach94@gmail.com>
Date
Apr 16, 2017, 13:01 UTC
Message-ID
<1492347718.19687.14.camel@gmail.com>
In-Reply-To
<9535BE255A654CADB7B0AE7599A6FA96@PhilipOakley>
On Sun, 2017-04-16 at 00:28 +0100, Philip Oakley wrote:
Show 26 quoted lines
> From: "Christoph Michelbach" <michelbach94@gmail.com>
> > 
> > While technically in the documentation, the fact that changes
> > introduced by a checkout <tree-ish> are staged automatically, was
> > not obvious when reading its documentation. It is now specifically
> > pointed out.
> > 
> > Signed-off-by: Christoph Michelbach <michelbach94@gmail.com>
> > ---
> > Documentation/git-checkout.txt | 7 ++++---
> > 1 file changed, 4 insertions(+), 3 deletions(-)
> > 
> > diff --git a/Documentation/git-checkout.txt 
> > b/Documentation/git-checkout.txt
> > index 8e2c066..cfd7b18 100644
> > --- a/Documentation/git-checkout.txt
> > +++ b/Documentation/git-checkout.txt
> > @@ -85,9 +85,10 @@ Omitting <branch> detaches HEAD at the tip of the 
> > current branch.
> > from the index file or from a named <tree-ish> (most often a
> > commit). In this case, the `-b` and `--track` options are
> > meaningless and giving either of them results in an error. The
> > - <tree-ish> argument can be used to specify a specific tree-ish
> > - (i.e. commit, tag or tree) to update the index for the given
> Do these lines above actually need reflowing? Their content hasn't changed 
> making it more difficult to spot the significant changes below here.
They're just part of the context of the automatically created patch.
> > +                               Note that this means
> > + that the changes this command introduces are staged automatically.
> Does this actually capture the intent of the user confusion it's meant to 
> cover? I may have missed the original discussions.

There is no original discussion in this mailing list. I got surprised the command automatically modified my staging area even though I didn't remember to have read it in the corresponding man page. Upon reading the relevant part of the man page again, I noticed that it in fact can be inferred from the half sentence "to update the index for the given paths before updating the working tree." but it isn't pointed out explicitly. Doing so doesn't take a lot more text and can avoid such surprises. So yes, if it's pointed out explicitly, the confusion is removed.

> For a clean commit checkout my mental model is not one of anything new being 
> actively staged i.e. different from what was in the commit.

Note that this is not about something like `git checkout 925b29` but about something like `git checkout 925b29 src`.

> I can see that 
> if a particular tree is checkout then it's implicit staging could well be a 
> surprise.
And it is actually documented. Just not explicitly mentioned / pointed out.

-- Christoph

Previous: Philip OakleyNext: Philip Oakley
Message 3 of 23 in “Documentation/git-checkout: make doc. of checkout <tree-ish> clearer”
  1. Documentation/git-checkout: make doc. of checkout <tree-ish> clearerChristoph Michelbach, Apr 15, 2017
  2. Philip OakleyApr 15, 2017
  3. Christoph MichelbachApr 16, 2017
  4. Philip OakleyApr 16, 2017
  5. Christoph MichelbachApr 16, 2017
  6. Philip OakleyApr 16, 2017
  7. Christoph MichelbachApr 16, 2017
  8. Philip OakleyApr 17, 2017
  9. Junio C HamanoApr 18, 2017
  10. Christoph MichelbachApr 18, 2017
  11. Philip OakleyApr 19, 2017
  12. Philip OakleyApr 17, 2017
  13. Junio C HamanoApr 18, 2017
  14. Christoph MichelbachApr 18, 2017
  15. Junio C HamanoApr 19, 2017
  16. Christoph MichelbachApr 22, 2017
  17. Junio C HamanoApr 24, 2017
  18. Christoph MichelbachApr 24, 2017
  19. Christoph MichelbachApr 24, 2017
  20. Junio C HamanoApr 25, 2017
  21. Christoph MichelbachApr 25, 2017
  22. Philip OakleyApr 19, 2017
  23. Christoph MichelbachApr 18, 2017

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.