threads / patch / 28491

patchgit-completion: offer remotes for 'git remote update'

Subject: [PATCH] git-completion: offer remotes for 'git remote update'

## tl;dr

4 messages between Sep 25, 2011 and Sep 28, 2011. Diffs are folded; open one to read it.

replies: 3people: 2as markdown or json

Auke Schrijnen· Sep 25, 2011, 12:06 UTC · lore

Completion for 'git remote update' only offers configured remote groups.

Add all remotes to the completion.
Signed-off-by: Auke Schrijnen <auke@schrijnen.nl>
---
  contrib/completion/git-completion.bash |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
Show changes to contrib/completion/git-completion.bash +1 −1
diff --git a/contrib/completion/git-completion.bash 
b/contrib/completion/git-completion.bash
index 8648a36..ad2175c 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2293,7 +2293,7 @@ _git_remote ()
  		__gitcomp "$(__git_remotes)"
  		;;
  	update)
-		local i c='' IFS=$'\n'
+		local i c="$(__git_remotes)" IFS=$'\n'
  		for i in $(git --git-dir="$(__gitdir)" config --get-regexp 
"remotes\..*" 2>/dev/null); do
  			i="${i#remotes.}"
  			c="$c ${i/ */}"
-- 
1.7.6.1
Junio C Hamano· Sep 28, 2011, 00:47 UTC · re: Auke Schrijnen · lore

Re: [PATCH] git-completion: offer remotes for 'git remote update'

Auke Schrijnen <auke@schrijnen.nl> writes:
> Completion for 'git remote update' only offers configured remote
> groups.

I have this suspicion that it might even be a feature. I am a bad person to make the judgement, as I do not use the "grouping" feature at all.

If you throw in individual remotes that are not grouped in the mix, the users of "git remote update" auto-completion, who have been happily relying on seeing only the configured groups, suddenly will start seeing many individual repositories offered, cluttering the available choices. Besides, if you want to fetch from a single source, why not use "git fetch" directly?

Back when "git fetch" didn't allow fetching from multiple repositories in one go, "remote update" was written as a wrapper for the explicit purpose of fetching from more than one remote by defining remote groups. Since late 2009, "git fetch" can update from multiple remotes itself, and I suspect "git remote update" outlived its usefulness in some sense, but that is a tangent.

Auke Schrijnen· Sep 28, 2011, 08:52 UTC · re: Junio C Hamano · lore

Re: [PATCH] git-completion: offer remotes for 'git remote update'

On Tue, 27 Sep 2011 17:47:17 -0700, Junio C Hamano wrote:
Show 29 quoted lines
> Auke Schrijnen <auke@schrijnen.nl> writes:
>
>> Completion for 'git remote update' only offers configured remote
>> groups.
>
> I have this suspicion that it might even be a feature. I am a bad 
> person
> to make the judgement, as I do not use the "grouping" feature at all.
>
> If you throw in individual remotes that are not grouped in the mix, 
> the
> users of "git remote update" auto-completion, who have been happily
> relying on seeing only the configured groups, suddenly will start 
> seeing
> many individual repositories offered, cluttering the available 
> choices.
> Besides, if you want to fetch from a single source, why not use "git
> fetch" directly?
>
> Back when "git fetch" didn't allow fetching from multiple 
> repositories in
> one go, "remote update" was written as a wrapper for the explicit 
> purpose
> of fetching from more than one remote by defining remote groups. 
> Since
> late 2009, "git fetch" can update from multiple remotes itself, and I
> suspect "git remote update" outlived its usefulness in some sense, 
> but
> that is a tangent.

I see your point and obviously i'm also not using the grouping feature. I could just use git fetch but i'm so used to type 'git remote update'... So i'll cook another patch.

Auke
Auke Schrijnen· Sep 28, 2011, 08:54 UTC · re: Junio C Hamano · lore

Completion for 'git remote update' only offers configured remote groups. This is fine if one uses remote groups but there is no completion without those groups.

Add all remotes to the completion when no configured groups are found.
Signed-off-by: Auke Schrijnen <auke@schrijnen.nl>
---
  contrib/completion/git-completion.bash |    6 +++++-
  1 files changed, 5 insertions(+), 1 deletions(-)
Show changes to contrib/completion/git-completion.bash +5 −1
diff --git a/contrib/completion/git-completion.bash 
b/contrib/completion/git-completion.bash
index 8648a36..12058bf 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -2298,7 +2298,11 @@ _git_remote ()
  			i="${i#remotes.}"
  			c="$c ${i/ */}"
  		done
-		__gitcomp "$c"
+		if [ -z "$c" ]; then
+			__gitcomp "$(__git_remotes)"
+		else
+			__gitcomp "$c"
+		fi
  		;;
  	*)
  		COMPREPLY=()
-- 
1.7.6.1

← back to recent threads