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

[PATCH v2 0/6] completion: improve completion for 'git worktree'

From
SZEDER Gábor <szeder.dev@gmail.com>
Date
Dec 19, 2019, 15:09 UTC
Message-ID
<20191219150921.5889-1-szeder.dev@gmail.com>
In-Reply-To
<20191017173501.3198-1-szeder.dev@gmail.com>

Complete paths of working trees and refs for 'git worktree's various subcommands.

The last two patches do the actual improvements, the first four are preparatory steps.

Changes since v1:
  - Added an in-code comment and clarified the commit message of patch
    5/6.
v1: https://public-inbox.org/git/20191017173501.3198-1-szeder.dev@gmail.com/T/#u
SZEDER Gábor (6):
  t9902-completion: add tests for the __git_find_on_cmdline() helper
  completion: clean up the __git_find_on_cmdline() helper function
  completion: return the index of found word from
    __git_find_on_cmdline()
  completion: simplify completing 'git worktree' subcommands and options
  completion: list existing working trees for 'git worktree' subcommands
  completion: list paths and refs for 'git worktree add'
 contrib/completion/git-completion.bash | 119 +++++++++++++++++++------
 t/t9902-completion.sh                  |  57 ++++++++++++
 2 files changed, 150 insertions(+), 26 deletions(-)
Range-diff against v1:
1:  bd68b0b64b = 1:  b370a97edc t9902-completion: add tests for the __git_find_on_cmdline() helper
2:  b5c0312db6 = 2:  fb8f1e4840 completion: clean up the __git_find_on_cmdline() helper function
3:  6999b0b8e2 = 3:  47aecb9ac0 completion: return the index of found word from __git_find_on_cmdline()
4:  dd38374f2f = 4:  00c5a0f7df completion: simplify completing 'git worktree' subcommands and options
5:  619ff7021c ! 5:  2e4b1b3931 completion: list existing working trees for 'git worktree' subcommands
    @@ Commit message
         Never list the path of the main working tree, as it cannot be moved,
         removed, locked, or unlocked.
     
    -    Arguably 'git worktree unlock <TAB>' should only complete locked
    -    working trees, but 'git worktree list --porcelain' doesn't indicate
    -    which working trees are locked.  So for now it will complete the paths
    -    of all existing working trees, including non-locked ones as well.
    +    Ideally we would only list unlocked working trees for the 'move',
    +    'remove', and 'lock' subcommands, and only locked ones for 'unlock'.
    +    Alas, 'git worktree list --porcelain' doesn't indicate which working
    +    trees are locked, so for now we'll complete the paths of all existing
    +    working trees.
     
         Signed-off-by: SZEDER Gábor <szeder.dev@gmail.com>
     
    @@ contrib/completion/git-completion.bash: _git_whatchanged ()
     +{
     +	local IFS=$'\n'
     +	__gitcomp_nl "$(git worktree list --porcelain |
    ++		# Skip the first entry: it's the path of the main worktree,
    ++		# which can't be moved, removed, locked, etc.
     +		sed -n -e '2,$ s/^worktree //p')"
     +}
     +
6:  29a32e5d36 = 6:  16a9b5f4b2 completion: list paths and refs for 'git worktree add'
-- 
2.24.1.982.ga4d4aba446
Previous: SZEDER GáborNext: SZEDER Gábor
Message 16 of 22 in “completion: improve completion for 'git worktree'”
  1. 0/6 completion: improve completion for 'git worktree'SZEDER Gábor, Oct 17, 2019
  2. 1/6 t9902-completion: add tests for the __git_find_on_cmdline() helperSZEDER Gábor, Oct 17, 2019
  3. 2/6 completion: clean up the __git_find_on_cmdline() helper functionSZEDER Gábor, Oct 17, 2019
  4. 3/6 completion: return the index of found word from __git_find_on_cmdline()SZEDER Gábor, Oct 17, 2019
  5. Eric SunshineOct 17, 2019
  6. SZEDER GáborOct 18, 2019
  7. Eric SunshineOct 18, 2019
  8. SZEDER GáborDec 19, 2019
  9. SZEDER GáborDec 19, 2019
  10. 6/6 completion: list paths and refs for 'git worktree add'SZEDER Gábor, Oct 17, 2019
  11. 5/6 completion: list existing working trees for 'git worktree' subcommandsSZEDER Gábor, Oct 17, 2019
  12. Eric SunshineOct 17, 2019
  13. SZEDER GáborOct 18, 2019
  14. Eric SunshineOct 18, 2019
  15. 4/6 completion: simplify completing 'git worktree' subcommands and optionsSZEDER Gábor, Oct 17, 2019
  16. 0/6 completion: improve completion for 'git worktree'SZEDER Gábor, Dec 19, 2019
  17. 1/6 t9902-completion: add tests for the __git_find_on_cmdline() helperSZEDER Gábor, Dec 19, 2019
  18. 2/6 completion: clean up the __git_find_on_cmdline() helper functionSZEDER Gábor, Dec 19, 2019
  19. 3/6 completion: return the index of found word from __git_find_on_cmdline()SZEDER Gábor, Dec 19, 2019
  20. 4/6 completion: simplify completing 'git worktree' subcommands and optionsSZEDER Gábor, Dec 19, 2019
  21. 5/6 completion: list existing working trees for 'git worktree' subcommandsSZEDER Gábor, Dec 19, 2019
  22. 6/6 completion: list paths and refs for 'git worktree add'SZEDER Gábor, Dec 19, 2019

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.