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

Re: No log --no-decorate completion?

From
Stefan Beller <sbeller@google.com>
Date
Nov 2, 2017, 21:19 UTC
Message-ID
<CAGZ79kbWEe=TyqPFSc+D8HCRh3cOkGbkqFKZbpkdisjvkfiaFg@mail.gmail.com>
In-Reply-To
<CAFA_24JXc=qJw1-_aJJUMPhW9DaBofxSb6hkVD6n4MWyeT5UOQ@mail.gmail.com>
On Thu, Nov 2, 2017 at 1:25 PM, Max Rothman <max.r.rothman@gmail.com> wrote:
> No problem! Let me know if I've done something wrong with this patch,
> I'm new to git's contributor process.

Thanks for coming up with a patch! Yeah, the contribution process has some initial road blocks; I'll point them out below.

> completion: add missing completions for log, diff, show

I would think this is a good commit subject as it describes the changes made superficially

Show 5 quoted lines
> * Add bash completion for the missing --no-* options on git log
> * Add bash completion for --textconv and --indent-heuristic families to
>   git diff and all commands that use diff's options
> * Add bash completion for --no-abbrev-commit, --expand-tabs, and
>   --no-expand-tabs to git show

This describes what happens in this patch, but not why, which helps future readers of commit message more than the "what". I'm also just guessing but maybe:

    A user might have configured a repo to show diffs in a certain way,
    add the --no-* options to the autocompletion to override it easier
    from the command line.
    New in this patch is autocompletion for --textconv as well as abbreviation
    options as that needs to be flipped all the time in <example workflow>.

I wonder if we really want to expose indent-heuristic, I guess by not having it experimental any more it makes sense to do so. c.f. https://public-inbox.org/git/20171029151228.607834-1-cmn@dwim.me/

At the end of a commit message, the Git project requires a sign off. (See section (5) in Documentation/SubmittingPatches; tl;dr: add Signed-off-by: NAME <EMAIL> if you can agree to https://developercertificate.org/)

Show 67 quoted lines
> ---
>  contrib/completion/git-completion.bash | 18 ++++++++++++++----
>  1 file changed, 14 insertions(+), 4 deletions(-)
>
> diff --git a/contrib/completion/git-completion.bash
> b/contrib/completion/git-completion.bash
> index 0e16f017a4144..252a6c8c0c80c 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1412,6 +1412,8 @@ __git_diff_common_options="--stat --numstat
> --shortstat --summary
>                         --dirstat-by-file= --cumulative
>                         --diff-algorithm=
>                         --submodule --submodule=
> +                       --indent-heuristic --no-indent-heuristic
> +                       --textconv --no-textconv
>  "
>
>  _git_diff ()
> @@ -1752,6 +1754,10 @@ _git_log ()
>                 __gitcomp "$__git_diff_submodule_formats" ""
> "${cur##--submodule=}"
>                 return
>                 ;;
> +       --no-walk=*)
> +               __gitcomp "sorted unsorted" "" "${cur##--no-walk=}"
> +               return
> +               ;;
>         --*)
>                 __gitcomp "
>                         $__git_log_common_options
> @@ -1759,16 +1765,19 @@ _git_log ()
>                         $__git_log_gitk_options
>                         --root --topo-order --date-order --reverse
>                         --follow --full-diff
> -                       --abbrev-commit --abbrev=
> +                       --abbrev-commit --no-abbrev-commit --abbrev=
>                         --relative-date --date=
>                         --pretty= --format= --oneline
>                         --show-signature
>                         --cherry-mark
>                         --cherry-pick
>                         --graph
> -                       --decorate --decorate=
> +                       --decorate --decorate= --no-decorate
>                         --walk-reflogs
> +                       --no-walk --no-walk= --do-walk
>                         --parents --children
> +                       --expand-tabs --expand-tabs= --no-expand-tabs
> +                       --patch
>                         $merge
>                         $__git_diff_common_options
>                         --pickaxe-all --pickaxe-regex
> @@ -2816,8 +2825,9 @@ _git_show ()
>                 return
>                 ;;
>         --*)
> -               __gitcomp "--pretty= --format= --abbrev-commit --oneline
> -                       --show-signature
> +               __gitcomp "--pretty= --format= --abbrev-commit
> --no-abbrev-commit
> +                       --oneline --show-signature --patch
> +                       --expand-tabs --expand-tabs= --no-expand-tabs
>                         $__git_diff_common_options
>                         "
>                 return
>

The patch looks good, but doesn't apply because the email contains white spaces instead of tabs. Maybe try https://submitgit.herokuapp.com/ (or fix/change your email client to send a patch; the gmail web interface doesn't work. I personally got 'git send-email' up and running; The Documentation/SubmittingPatches has a section on email clients, too)

Thanks, Stefan

Previous: Max RothmanNext: Max Rothman
Message 7 of 19 in “No log --no-decorate completion?”
  1. Max RothmanOct 11, 2017
  2. Stefan BellerOct 11, 2017
  3. Max RothmanOct 12, 2017
  4. Max RothmanOct 24, 2017
  5. Stefan BellerOct 24, 2017
  6. Max RothmanNov 2, 2017
  7. Stefan BellerNov 2, 2017
  8. Max RothmanNov 7, 2017
  9. Stefan BellerNov 7, 2017
  10. completion: add missing completions for log, diff, showMax Rothman, Nov 7, 2017
  11. Junio C HamanoNov 8, 2017
  12. Max RothmanNov 8, 2017
  13. Junio C HamanoNov 8, 2017
  14. completion: add missing completions for log, diff, showMax Rothman, Jul 2, 2019
  15. Max RothmanAug 2, 2019
  16. Max RothmanSep 11, 2019
  17. Johannes SchindelinSep 12, 2019
  18. Junio C HamanoSep 12, 2019
  19. Johannes SchindelinSep 13, 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.