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

6 messages from 2008-08-14 to 2008-08-15. Participants: Lee Marlow, Shawn O. Pearce, Junio C Hamano.
Thread: https://gitlist.dev/t/15014

## Lee Marlow, 2008-08-14 22:41

Subject: [PATCH 0/2] Helpful completions for merging
Message-ID: <1218753671-58099-1-git-send-email-lee.marlow@gmail.com>
URL: https://gitlist.dev/e/1218753671-58099-1-git-send-email-lee.marlow%40gmail.com

```
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, 2008-08-14 22:41

Subject: [PATCH 1/2] bash completion: Add completion for 'git mergetool'
Message-ID: <1218753671-58099-2-git-send-email-lee.marlow@gmail.com>
URL: https://gitlist.dev/e/1218753671-58099-2-git-send-email-lee.marlow%40gmail.com
In-Reply-To: <1218753671-58099-1-git-send-email-lee.marlow@gmail.com>

```
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(-)

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, 2008-08-14 22:41

Subject: [PATCH 2/2] bash completion: Add '--merge' long option for 'git log'
Message-ID: <1218753671-58099-3-git-send-email-lee.marlow@gmail.com>
URL: https://gitlist.dev/e/1218753671-58099-3-git-send-email-lee.marlow%40gmail.com
In-Reply-To: <1218753671-58099-2-git-send-email-lee.marlow@gmail.com>

```
Signed-off-by: Lee Marlow <lee.marlow@gmail.com>
---
 contrib/completion/git-completion.bash |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

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, 2008-08-15 00:05

Subject: Re: [PATCH 1/2] bash completion: Add completion for 'git mergetool'
Message-ID: <20080815000541.GE3782@spearce.org>
URL: https://gitlist.dev/e/20080815000541.GE3782%40spearce.org
In-Reply-To: <1218753671-58099-2-git-send-email-lee.marlow@gmail.com>

```
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.

> 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, 2008-08-15 00:15

Subject: Re: [PATCH 1/2] bash completion: Add completion for 'git mergetool'
Message-ID: <7v63q3cev5.fsf@gitster.siamese.dyndns.org>
URL: https://gitlist.dev/e/7v63q3cev5.fsf%40gitster.siamese.dyndns.org
In-Reply-To: <20080815000541.GE3782@spearce.org>

```
"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 ;-)

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, 2008-08-15 00:18

Subject: Re: [PATCH 1/2] bash completion: Add completion for 'git mergetool'
Message-ID: <20080815001816.GG3782@spearce.org>
URL: https://gitlist.dev/e/20080815001816.GG3782%40spearce.org
In-Reply-To: <7v63q3cev5.fsf@gitster.siamese.dyndns.org>

```
Junio C Hamano <gitster@pobox.com> wrote:
> "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.

```
