--- This seems to work most of the time. This git log --pretty=format:%ad:%<TAB> becomes git log --pretty=format:%ad:%ad:% which is wrong. But in quotes git log --pretty=format:"%ad:%<TAB> works. I'm not sure why. Also git log --pretty=%<TAB> doesn't work. I'm not sure how to support that without encountering the same breakage as above. contrib/completion/git-completion.bash | 25 +++++++++++++++++++++++++ 1 files changed, 25 insertions(+), 0 deletions(-) diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash index ad26b7c..3819c73 100755 --- a/contrib/completion/git-completion.bash +++ b/contrib/completion/git-completion.bash @@ -1117,6 +1117,9 @@ __git_log_shortlog_options=" __git_log_pretty_formats="oneline short medium full fuller email raw format:" __git_log_date_formats="relative iso8601 rfc2822 short local default raw" +__git_log_format_placeholders="ad aD ae aE ai an aN ar at b Cblue cd cD ce cE +Cgreen ci cn cN cr Cred Creset ct d e f h H m n p P s t T x +" _git_log () { @@ -1129,6 +1132,17 @@ _git_log () merge="--merge" fi case "$cur" in + --pretty=format:*%*|--format=format:*%*) + local pfx="${cur%\%*}%" + pfx="${pfx#*:}" + cur="${cur##*%}" + __gitcomp "$__git_log_format_placeholders + " "$pfx" "$cur" + return + ;; + --pretty=format:*|--format=format:*) + return + ;; --pretty=*) __gitcomp "$__git_log_pretty_formats " "" "${cur##--pretty=}" @@ -1814,6 +1828,17 @@ _git_show () local cur="${COMP_WORDS[COMP_CWORD]}" case "$cur" in + --pretty=format:*%*|--format=format:*%*) + local pfx="${cur%\%*}%" + pfx="${pfx#*:}" + cur="${cur##*%}" + __gitcomp "$__git_log_format_placeholders + " "$pfx" "$cur" + return + ;; + --pretty=format:*|--format=format:*) + return + ;; --pretty=*) __gitcomp "$__git_log_pretty_formats " "" "${cur##--pretty=}" -- 1.6.3.1.9.g95405b -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html