From: Ryan Cumming <etao...@gmail.com>

git p4 was moved out of contrib in 1.7.11 but it git-completion didn't
know about it. Add git p4 completion based on the existing SVN
completion. It covers all known subcommands and options except for the
-/ option for clone which doesn't use the standard -- prefix.

Signed-off-by: Ryan Cumming <etao...@gmail.com>
---
 contrib/completion/git-completion.bash | 44 ++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/contrib/completion/git-completion.bash 
b/contrib/completion/git-completion.bash
index c48cd19..c6140be 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1459,6 +1459,50 @@ _git_notes ()
        esac
 }
 
+_git_p4 ()
+{
+       local subcommands="
+               clone sync rebase submit
+               "
+       local subcommand="$(__git_find_on_cmdline "$subcommands")"
+       if [ -z "$subcommand" ]; then
+               __gitcomp "$subcommands"
+       else
+               local common_opts="--git-dir= --verbose"
+               local sync_opts="
+                       --branch= --detect-branches --changes-file=
+                       --silent --detect-labels --import-labels
+                       --import-local --max-changes= --keep-path
+                       --use-client-spec $common_opts
+                       "
+               local clone_opts="
+                       --destination= --bare $sync_opts
+                       "
+               local submit_opts="
+                       --origin= -M --preserve-user --export-labels
+                       $common_opts
+                       "
+
+               case "$subcommand,$cur" in
+               clone,--*)
+                       __gitcomp "$clone_opts"
+                       ;;
+               sync,--*)
+                       __gitcomp "$sync_opts"
+                       ;;
+               rebase,--*)
+                       __gitcomp "$common_opts --import-labels"
+                       ;;
+               submit,--*)
+                       __gitcomp "$submit_opts"
+                       ;;
+               submit,*)
+                       __gitcomp "$(__git_refs)"
+                       ;;
+               esac
+       fi
+}
+
 _git_pull ()
 {
        __git_complete_strategy && return
-- 
1.7.12.1

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to