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

Re: [PATCH 05/11] completion: add test showing subpar completion for git switch --orphan

From
Jacob Keller <jacob.keller@gmail.com>
Date
Apr 28, 2020, 18:45 UTC
Message-ID
<CA+P7+xoSdDjbSAKeCsPz97Rc=ykpuTb2pNKazsCNcau2SBquMA@mail.gmail.com>
In-Reply-To
<xmqqsggn32i7.fsf@gitster.c.googlers.com>
On Tue, Apr 28, 2020 at 11:10 AM Junio C Hamano <gitster@pobox.com> wrote:
Show 25 quoted lines
>
> Jacob Keller <jacob.keller@gmail.com> writes:
>
> >> And that same "is this really helping?" reasoning applies equally to
> >> the "--orphan" option.
> >>
> >> I dunno.
> >>
> >
> > Fair enough, new branches based on previous branches makes sense.
>
> I actually do not have a strong opinion either way.  I just wanted
> to say that it would be good to make it consistent across "checkout
> -b", "switch -c" and "checkout/switch --orphan".
>
> It would be nice if "checkout -B" and "switch -C" pair offered
> existing branches, as the intention of using the capital letter is
> clear---the user wants to overwrite an existing one.
>
> On the other hand, I am OK if "checkout -b", "switch -c" and
> "--orphan" offered either:
>
>  (1) nothing, as your patch does, or
>
>  (2) all branches, except for the currently checked out one.

Why reject the currently checked out one? If the premise is: "use a current branch to build a new branch name", I don't see a reason to restrict including the current branch here as well.

Show 5 quoted lines
>
> It would be preferrable if they did the same thing.
>
> Thanks.
>
The problem I see, is that regardless, I would like to see the following:
git switch -c new-branch-name <SPACE><TAB>
complete all references for the starting point.

With this series, that's handled by just checking for "-c/-C" on the command line and enabling all references. There's no positional checks done, so every word can complete to a reference.

I don't know offhand how to add completion which depends on the position of the word we're completing, so I'd have to investigate how to make that happen.

Thanks, Jake

Previous: Junio C HamanoNext: Junio C Hamano
Message 20 of 26 in “refactor git switch completion”
  1. 00/11 refactor git switch completionJacob Keller, Apr 25, 2020
  2. 01/11 completion: add some simple test cases for git switch completionJacob Keller, Apr 25, 2020
  3. 02/11 completion: add test showing subpar git switch completionJacob Keller, Apr 25, 2020
  4. 03/11 completion: add test highlighting subpar git switch --track completionJacob Keller, Apr 25, 2020
  5. 04/11 completion: add tests showing lack of support for git switch -c/-CJacob Keller, Apr 25, 2020
  6. 09/11 completion: fix completion for git switch with no optionsJacob Keller, Apr 25, 2020
  7. 11/11 completion: complete remote branches for git switch --trackJacob Keller, Apr 25, 2020
  8. 08/11 completion: perform DWIM logic directly in __git_complete_refsJacob Keller, Apr 25, 2020
  9. 10/11 completion: recognize -c/-C when completing for git switchJacob Keller, Apr 25, 2020
  10. 07/11 completion: extract function __git_dwim_remote_headsJacob Keller, Apr 25, 2020
  11. 06/11 completion: rename --track option of __git_complete_refsJacob Keller, Apr 25, 2020
  12. 05/11 completion: remove completion for git switch --orphanJacob Keller, Apr 25, 2020
  13. 05/11 completion: add test showing subpar completion for git switch --orphanJacob Keller, Apr 25, 2020
  14. Junio C HamanoApr 27, 2020
  15. Jacob KellerApr 28, 2020
  16. Jacob KellerApr 28, 2020
  17. Junio C HamanoApr 28, 2020
  18. Jacob KellerApr 28, 2020
  19. Junio C HamanoApr 28, 2020
  20. Jacob KellerApr 28, 2020
  21. Junio C HamanoApr 28, 2020
  22. Jacob KellerApr 28, 2020
  23. Junio C HamanoApr 28, 2020
  24. Jacob KellerApr 25, 2020
  25. Junio C HamanoApr 30, 2020
  26. Jacob KellerMay 1, 2020

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.