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

Re: [PATCH v2] completion: optionally disable checkout DWIM

From
BWBrandon Williams <bmwill@google.com>
Date
Apr 24, 2017, 16:30 UTC
Message-ID
<20170424163002.GB195761@google.com>
In-Reply-To
<20170421202705.4uhbk3okccszxvgl@sigill.intra.peff.net>
On 04/21, Jeff King wrote:
Show 29 quoted lines
> 
> When we complete branch names for "git checkout", we also
> complete remote branch names that could trigger the DWIM
> behavior. Depending on your workflow and project, this can
> be either convenient or annoying.
> 
> For instance, my clone of gitster.git contains 74 local
> "jk/*" branches, but origin contains another 147. When I
> want to checkout a local branch but can't quite remember the
> name, tab completion shows me 251 entries. And worse, for a
> topic that has been picked up for pu, the upstream branch
> name is likely to be similar to mine, leading to a high
> probability that I pick the wrong one and accidentally
> create a new branch.
> 
> This patch adds a way for the user to tell the completion
> code not to include DWIM suggestions for checkout. This can
> already be done by typing:
> 
>   git checkout --no-guess jk/<TAB>
> 
> but that's rather cumbersome. The downside, of course, is
> that you no longer get completion support when you _do_ want
> to invoke the DWIM behavior. But depending on your workflow,
> that may not be a big loss (for instance, in git.git I am
> much more likely to want to detach, so I'd type "git
> checkout origin/jk/<TAB>" anyway).
> 
> Signed-off-by: Jeff King <peff@peff.net>

May not be relevant to this patch per-say, but is there a way to have the completion for checkout only complete up to a part of remotes/branches? Say a forward-slash '/'. For example git.git has lots of branches which have the form: origin/<initials>/branch-name. It would be convenient if when I type:

git checkout <TAB> 

Instead of getting a long list of 2k or so branch names that instead I would get see the remote's name e.g. 'origin/' kind of like vanilla directory completion. This way, unless I'm actually interested in the remote, I don't see the thousands of branches related to it.

-- 
Brandon Williams
Previous: Jeff King
Message 10 of 10 in “completion: optionally disable checkout DWIM”
  1. completion: optionally disable checkout DWIMJeff King, Apr 20, 2017
  2. Junio C HamanoApr 21, 2017
  3. Jeff KingApr 21, 2017
  4. Junio C HamanoApr 21, 2017
  5. SZEDER GáborApr 21, 2017
  6. Jeff KingApr 21, 2017
  7. SZEDER GáborApr 22, 2017
  8. Jacob KellerApr 21, 2017
  9. completion: optionally disable checkout DWIMJeff King, Apr 21, 2017
  10. Brandon WilliamsApr 24, 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.