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, 20:41 UTC
Message-ID
<CA+P7+xpD7LaYMnoi6L-Z7e9w0j0+ppDCw6fGBzSMfxerw0HrUA@mail.gmail.com>
In-Reply-To
<xmqq8sif2zfr.fsf@gitster.c.googlers.com>
On Tue, Apr 28, 2020 at 12:16 PM Junio C Hamano <gitster@pobox.com> wrote:
Show 18 quoted lines
>
> Jacob Keller <jacob.keller@gmail.com> writes:
> > 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.
>
> I see.  Even though I say "(3) all branches" is a reasonable
> behaviour, too, if the starting point has to be more (i.e. including
> tags), that would not help the issue you have here.  It may not be
> too bad if we offered all refs (including tags, which may not be a
> good idea) in that case.  I dunno.
>
> Thanks.
>

Basically, when creating a branch, you often do "git switch -c branch-name start-point"

branch-name would be the new branch name you want, and I think we should complete local branches for this, but start-point can be any reference, i.e. a tag, a local branch, or a remote reference.

I assumed completion would be most useful to complete the start-point, and so I opted to lean towards fixing completion for -c/-C to complete all references. However, I don't think the branch name should necessarily complete from all references and it would make sense to complete that portion only by local branch names.

I'm just not sure how best to implement that in our completion logic, and I would rather ensure that start-point completes properly, if we have to choose.

Thanks, Jake

Previous: Junio C HamanoNext: Junio C Hamano
Message 22 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.