Code

Avoid src:dst syntax as default bash completion for git push
authorShawn O. Pearce <spearce@spearce.org>
Fri, 22 Jun 2007 22:44:04 +0000 (18:44 -0400)
committerShawn O. Pearce <spearce@spearce.org>
Fri, 22 Jun 2007 22:44:04 +0000 (18:44 -0400)
Raimund Bauer just discovered that the default bash completion for
a local branch name in a git-push line is not the best choice when
the branch does not exist on the remote system.

In the past we have always completed the local name 'test' as
"test:test", indicating that the destination name is the same as
the local name.  But this fails when "test" does not yet exist on
the remote system, as there is no "test" branch for it to match
the name against.

Fortunately git-push does the right thing when given just the
local branch, as it assumes you want to use the same name in the
destination repository.  So we now offer "test" as the completion
in a git-push line, and let git-push assume that is also the remote
branch name.

We also still support the remote branch completion after the :,
but only if the user manually adds the colon before trying to get
a completion.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
contrib/completion/git-completion.bash

index 9e72f0f7b1668ba144397b6a6a2094d4294f5724..c7c9963347f036323ee5680a3b2918f20cd77eb1 100755 (executable)
@@ -683,7 +683,7 @@ _git_push ()
                        __gitcomp "$(__git_refs "$remote")" "" "${cur#*:}"
                        ;;
                *)
-                       __gitcomp "$(__git_refs2)"
+                       __gitcomp "$(__git_refs)"
                        ;;
                esac
                ;;