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

Re: git checkout -t -B

From
Philip Oakley <philipoakley@iee.org>
Date
Aug 27, 2012, 23:09 UTC
Message-ID
<10B409063A944B298250064D2DB0BAB7@PhilipOakley>
In-Reply-To
<7v8vd1v6q2.fsf@alter.siamese.dyndns.org>
From: "Junio C Hamano" <gitster@pobox.com>
Sent: Sunday, August 26, 2012 7:38 PM
Show 26 quoted lines
> 乙酸鋰 <ch3cooli@gmail.com> writes:
>
>> git checkout -t -B origin/abcde
>> works
>>
>> but
>> git checkout -B -t origin/abcde
>> does not.
>>
>> Could you document the order of parameters or fix the behaviour?
>
> It is crystal clear that -b/-B/--orphan must be followed by the name
> of the branch you are creating from the SYNOPSIS section of the
> documentation.
>
>    NAME
>    ----
>    git-checkout - Checkout a branch or paths to the working tree
>
>    SYNOPSIS
>    --------
>    [verse]
>    ...
>    'git checkout' [-q] [-f] [-m] [[-b|-B|--orphan] <new_branch>]
> [<st..
>    ...

I didn't find it immediately obvious, but with 6/6 hindsight it is clearly indicated.

However the -t option isn't listed within the synopsis, and does immediately follow the -b & -B in the options list which could confuse some readers who would stick it after the -b ;-)

Should the -t and -l options be shown in the synopsis?
Show 26 quoted lines
>
> However, the option description can use some improvement.  It
> currently reads:
>
>    -b::
>            Create a new branch named <new_branch> and start it at
>            <start_point>; see linkgit:git-branch[1] for details.
>
> as if it and <new_branch> are freestanding arguments.
>
> I think we should describe the option like this:
>
>    -b <new_branch>::
>            Create a new branch named <new_branch> and start it at
>            <start_point>; see linkgit:git-branch[1] for details.
>
> The description for "-B" and "--orphan" options share the same
> issue.
>
> I suspect that documentation for other commands may share this
> issue.  It would be good if somebody can check the option
> description section and make sure there is no discrepancy like this
> by comparing it to the SYNOPSIS section (or "git cmd -h") for all
> manual pages.
>
> I'll patch only "git-checkout.txt" myself for now; hint, hint.

I searched for all occurrences of '[[' which would indicate a double optional argument within the synopsis and only found git-read-tree.

I don't think it has the same problem but I wasn't sure of the priority order between the '[]' and '|' selectors in the multi-choice cases.

I haven't seen anything definitive on how one should read the synopsis. I thought the order of some option could be exchanged, as rev-parse says that they can be combined (for the right commands).

>
> Thanks.
> --
Previous: Junio C HamanoNext: Junio C Hamano
Message 5 of 8 in “git checkout -t -B”
  1. 乙酸鋰Aug 26, 2012
  2. Junio C HamanoAug 26, 2012
  3. Nguyen Thai Ngoc DuyAug 27, 2012
  4. Junio C HamanoAug 27, 2012
  5. Philip OakleyAug 27, 2012
  6. Junio C HamanoAug 27, 2012
  7. Philip OakleyAug 28, 2012
  8. doc: "git checkout -b/-B/--orphan" always takes a branch nameJunio C Hamano, Aug 26, 2012

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.