threads / patch / 15014

patch, 2 partsbash completion: Add completion for 'git mergetool'

Subject: [PATCH 1/2] bash completion: Add completion for 'git mergetool'

## tl;dr

6 messages between Aug 14, 2008 and Aug 15, 2008. Diffs are folded; open one to read it.

replies: 5people: 3as markdown or json

Lee Marlow· Aug 14, 2008, 22:41 UTC · lore

[PATCH 0/2] Helpful completions for merging

These patches just add some simple completions for merging.
Lee Marlow (2):
  bash completion: Add completion for 'git mergetool'
  bash completion: Add '--merge' long option for 'git log'
 contrib/completion/git-completion.bash |   21 +++++++++++++++++++++
 1 files changed, 21 insertions(+), 0 deletions(-)
Lee Marlow· Aug 14, 2008, 22:41 UTC · re: Lee Marlow · lore
The --tool= long option can be completed with
	kdiff3 tkdiff meld xxdiff emerge
	vimdiff gvimdiff ecmerge opendiff
Signed-off-by: Lee Marlow <lee.marlow@gmail.com>
---
 contrib/completion/git-completion.bash |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)
Show changes to contrib/completion/git-completion.bash +20 −0
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 78189c1..4089670 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1001,6 +1001,25 @@ _git_merge ()
 	__gitcomp "$(__git_refs)"
 }
 
+_git_mergetool ()
+{
+	local cur="${COMP_WORDS[COMP_CWORD]}"
+	case "$cur" in
+	--tool=*)
+		__gitcomp "
+			kdiff3 tkdiff meld xxdiff emerge
+			vimdiff gvimdiff ecmerge opendiff
+			" "" "${cur##--tool=}"
+		return
+		;;
+	--*)
+		__gitcomp "--tool="
+		return
+		;;
+	esac
+	COMPREPLY=()
+}
+
 _git_merge_base ()
 {
 	__gitcomp "$(__git_refs)"
@@ -1650,6 +1669,7 @@ _git ()
 	ls-remote)   _git_ls_remote ;;
 	ls-tree)     _git_ls_tree ;;
 	merge)       _git_merge;;
+	mergetool)   _git_mergetool;;
 	merge-base)  _git_merge_base ;;
 	mv)          _git_mv ;;
 	name-rev)    _git_name_rev ;;
-- 
1.6.0.rc3.6.ga0653
Lee Marlow· Aug 14, 2008, 22:41 UTC · re: Lee Marlow · lore

[PATCH 2/2] bash completion: Add '--merge' long option for 'git log'

Signed-off-by: Lee Marlow <lee.marlow@gmail.com>
---
 contrib/completion/git-completion.bash |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
Show changes to contrib/completion/git-completion.bash +1 −0
diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index 4089670..bdf4f4a 100755
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -972,6 +972,7 @@ _git_log ()
 			--decorate --diff-filter=
 			--color-words --walk-reflogs
 			--parents --children --full-history
+			--merge
 			"
 		return
 		;;
-- 
1.6.0.rc3.6.ga0653
Shawn O. Pearce· Aug 15, 2008, 00:05 UTC · re: Lee Marlow · lore

Re: [PATCH 1/2] bash completion: Add completion for 'git mergetool'

Lee Marlow <lee.marlow@gmail.com> wrote:
Show 5 quoted lines
> The --tool= long option can be completed with
> 	kdiff3 tkdiff meld xxdiff emerge
> 	vimdiff gvimdiff ecmerge opendiff
> 
> Signed-off-by: Lee Marlow <lee.marlow@gmail.com>
Acked-by: Shawn O. Pearce <spearce@spearce.org>

... for both patches in this series. But this is new functionality so it probably won't be in 1.6.0; its too late in that release cycle.

Show 38 quoted lines
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index 78189c1..4089670 100755
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash
> @@ -1001,6 +1001,25 @@ _git_merge ()
>  	__gitcomp "$(__git_refs)"
>  }
>  
> +_git_mergetool ()
> +{
> +	local cur="${COMP_WORDS[COMP_CWORD]}"
> +	case "$cur" in
> +	--tool=*)
> +		__gitcomp "
> +			kdiff3 tkdiff meld xxdiff emerge
> +			vimdiff gvimdiff ecmerge opendiff
> +			" "" "${cur##--tool=}"
> +		return
> +		;;
> +	--*)
> +		__gitcomp "--tool="
> +		return
> +		;;
> +	esac
> +	COMPREPLY=()
> +}
> +
>  _git_merge_base ()
>  {
>  	__gitcomp "$(__git_refs)"
> @@ -1650,6 +1669,7 @@ _git ()
>  	ls-remote)   _git_ls_remote ;;
>  	ls-tree)     _git_ls_tree ;;
>  	merge)       _git_merge;;
> +	mergetool)   _git_mergetool;;
>  	merge-base)  _git_merge_base ;;
>  	mv)          _git_mv ;;
>  	name-rev)    _git_name_rev ;;
-- 
Shawn.
Junio C Hamano· Aug 15, 2008, 00:15 UTC · re: Shawn O. Pearce · lore

Re: [PATCH 1/2] bash completion: Add completion for 'git mergetool'

"Shawn O. Pearce" <spearce@spearce.org> writes:
Show 11 quoted lines
> Lee Marlow <lee.marlow@gmail.com> wrote:
>> The --tool= long option can be completed with
>> 	kdiff3 tkdiff meld xxdiff emerge
>> 	vimdiff gvimdiff ecmerge opendiff
>> 
>> Signed-off-by: Lee Marlow <lee.marlow@gmail.com>
>
> Acked-by: Shawn O. Pearce <spearce@spearce.org>
>
> ... for both patches in this series.  But this is new functionality
> so it probably won't be in 1.6.0; its too late in that release cycle.
Heh, you are too cautious ;-)

Both "log --merge" and mergetool have been with us for quite some time, and I certainly do not mind taking [2/2] if not both.

Shawn O. Pearce· Aug 15, 2008, 00:18 UTC · re: Junio C Hamano · lore

Re: [PATCH 1/2] bash completion: Add completion for 'git mergetool'

Junio C Hamano <gitster@pobox.com> wrote:
Show 14 quoted lines
> "Shawn O. Pearce" <spearce@spearce.org> writes:
> > Lee Marlow <lee.marlow@gmail.com> wrote:
> >> The --tool= long option can be completed with
> >> 	kdiff3 tkdiff meld xxdiff emerge
> >> 	vimdiff gvimdiff ecmerge opendiff
> >> 
> >> Signed-off-by: Lee Marlow <lee.marlow@gmail.com>
> >
> > Acked-by: Shawn O. Pearce <spearce@spearce.org>
> >
> > ... for both patches in this series.  But this is new functionality
> > so it probably won't be in 1.6.0; its too late in that release cycle.
> 
> Heh, you are too cautious ;-)
Heh, last time you accused me of being too aggressive.
 
> Both "log --merge" and mergetool have been with us for quite some time,
> and I certainly do not mind taking [2/2] if not both.

I think both are fine to include in 1.6.0 if you are willing to apply them there. Its pretty low risk, but at this point the bash completion has gone from "minor fun toy" to "major part of the git-core suite which all of the distros link into their bash completion loading". IMHO its long out-grown its contrib status.

-- 
Shawn.

← back to recent threads