git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] completion: add format-patch options to send-email
@ 2012-10-14 16:14 Felipe Contreras
  2012-10-15 22:48 ` SZEDER Gábor
  0 siblings, 1 reply; 6+ messages in thread
From: Felipe Contreras @ 2012-10-14 16:14 UTC (permalink / raw)
  To: git; +Cc: Junio C Hamano, SZEDER Gabor, Felipe Contreras

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 contrib/completion/git-completion.bash | 35 +++++++++++++++++-----------------
 t/t9902-completion.sh                  | 21 ++++++++++++++++++++
 2 files changed, 39 insertions(+), 17 deletions(-)

diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
index d743e56..2a83504 100644
--- a/contrib/completion/git-completion.bash
+++ b/contrib/completion/git-completion.bash
@@ -1112,6 +1112,14 @@ _git_fetch ()
 	__git_complete_remote_or_refspec
 }
 
+__git_format_patch_options="
+	--stdout --attach --no-attach --thread --thread= --output-directory
+	--numbered --start-number --numbered-files --keep-subject --signoff
+	--signature --no-signature --in-reply-to= --cc= --full-index --binary
+	--not --all --cover-letter --no-prefix --src-prefix= --dst-prefix=
+	--inline --suffix= --ignore-if-in-upstream --subject-prefix=
+"
+
 _git_format_patch ()
 {
 	case "$cur" in
@@ -1122,21 +1130,7 @@ _git_format_patch ()
 		return
 		;;
 	--*)
-		__gitcomp "
-			--stdout --attach --no-attach --thread --thread=
-			--output-directory
-			--numbered --start-number
-			--numbered-files
-			--keep-subject
-			--signoff --signature --no-signature
-			--in-reply-to= --cc=
-			--full-index --binary
-			--not --all
-			--cover-letter
-			--no-prefix --src-prefix= --dst-prefix=
-			--inline --suffix= --ignore-if-in-upstream
-			--subject-prefix=
-			"
+		__gitcomp "$__git_format_patch_options"
 		return
 		;;
 	esac
@@ -1550,6 +1544,12 @@ _git_send_email ()
 		__gitcomp "ssl tls" "" "${cur##--smtp-encryption=}"
 		return
 		;;
+	--thread=*)
+		__gitcomp "
+			deep shallow
+			" "" "${cur##--thread=}"
+		return
+		;;
 	--*)
 		__gitcomp "--annotate --bcc --cc --cc-cmd --chain-reply-to
 			--compose --confirm= --dry-run --envelope-sender
@@ -1559,11 +1559,12 @@ _git_send_email ()
 			--signed-off-by-cc --smtp-pass --smtp-server
 			--smtp-server-port --smtp-encryption= --smtp-user
 			--subject --suppress-cc= --suppress-from --thread --to
-			--validate --no-validate"
+			--validate --no-validate
+			$__git_format_patch_options"
 		return
 		;;
 	esac
-	COMPREPLY=()
+	__git_complete_revlist_file
 }
 
 _git_stage ()
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
index 92d7eb4..c4b6c13 100755
--- a/t/t9902-completion.sh
+++ b/t/t9902-completion.sh
@@ -146,6 +146,22 @@ test_expect_success '__gitcomp - suffix' '
 	test_cmp expected out
 '
 
+setup_repository ()
+{
+	mkdir "$1" && (
+	cd "$1" &&
+	git init &&
+	test_tick &&
+	git commit --allow-empty -m "Initial"
+	)
+}
+
+test_expect_success 'prepare' '
+	setup_repository one &&
+	git clone one test &&
+	cd test
+'
+
 test_expect_success 'basic' '
 	run_completion "git \"\"" &&
 	# built-in
@@ -228,4 +244,9 @@ test_expect_success 'general options plus command' '
 	test_completion "git --no-replace-objects check" "checkout "
 '
 
+test_expect_success 'send-email' '
+	test_completion "git send-email --cov" "--cover-letter " &&
+	test_completion "git send-email ma" "master "
+'
+
 test_done
-- 
1.7.12.1

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] completion: add format-patch options to send-email
  2012-10-14 16:14 [PATCH] completion: add format-patch options to send-email Felipe Contreras
@ 2012-10-15 22:48 ` SZEDER Gábor
  2012-10-15 23:28   ` Junio C Hamano
  2012-10-15 23:37   ` Felipe Contreras
  0 siblings, 2 replies; 6+ messages in thread
From: SZEDER Gábor @ 2012-10-15 22:48 UTC (permalink / raw)
  To: Felipe Contreras; +Cc: git, Junio C Hamano

Hi,

On Sun, Oct 14, 2012 at 06:14:03PM +0200, Felipe Contreras wrote:
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> ---
>  contrib/completion/git-completion.bash | 35 +++++++++++++++++-----------------
>  t/t9902-completion.sh                  | 21 ++++++++++++++++++++
>  2 files changed, 39 insertions(+), 17 deletions(-)
> 
> diff --git a/contrib/completion/git-completion.bash b/contrib/completion/git-completion.bash
> index d743e56..2a83504 100644
> --- a/contrib/completion/git-completion.bash
> +++ b/contrib/completion/git-completion.bash

This patch doesn't apply on current master.

> @@ -1559,11 +1559,12 @@ _git_send_email ()
>  			--signed-off-by-cc --smtp-pass --smtp-server
>  			--smtp-server-port --smtp-encryption= --smtp-user
>  			--subject --suppress-cc= --suppress-from --thread --to
> -			--validate --no-validate"
> +			--validate --no-validate
> +			$__git_format_patch_options"
>  		return
>  		;;
>  	esac
> -	COMPREPLY=()
> +	__git_complete_revlist_file

While send-email accepts a rev-list, it doesn't accept
'HEAD:Documentation', does it?  So __git_complete_revlist() would be
better here, because that makes the intent clear.

>  }
>  
>  _git_stage ()
> diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
> index 92d7eb4..c4b6c13 100755
> --- a/t/t9902-completion.sh
> +++ b/t/t9902-completion.sh
> @@ -146,6 +146,22 @@ test_expect_success '__gitcomp - suffix' '
>  	test_cmp expected out
>  '
>  
> +setup_repository ()
> +{
> +	mkdir "$1" && (
> +	cd "$1" &&
> +	git init &&
> +	test_tick &&
> +	git commit --allow-empty -m "Initial"
> +	)
> +}
> +
> +test_expect_success 'prepare' '
> +	setup_repository one &&
> +	git clone one test &&

Why are these new repositories needed?

> +	cd test

This 'cd' makes all subsequent tests to be executed in a different
repository than previously, which breaks 'checkout completes ref
names'.

> +'
> +
>  test_expect_success 'basic' '
>  	run_completion "git \"\"" &&
>  	# built-in
> @@ -228,4 +244,9 @@ test_expect_success 'general options plus command' '
>  	test_completion "git --no-replace-objects check" "checkout "
>  '
>  
> +test_expect_success 'send-email' '
> +	test_completion "git send-email --cov" "--cover-letter " &&
> +	test_completion "git send-email ma" "master "
> +'
> +
>  test_done
> -- 
> 1.7.12.1
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] completion: add format-patch options to send-email
  2012-10-15 22:48 ` SZEDER Gábor
@ 2012-10-15 23:28   ` Junio C Hamano
  2012-10-15 23:37   ` Felipe Contreras
  1 sibling, 0 replies; 6+ messages in thread
From: Junio C Hamano @ 2012-10-15 23:28 UTC (permalink / raw)
  To: SZEDER Gábor; +Cc: Felipe Contreras, git

SZEDER Gábor <szeder@ira.uka.de> writes:

>> +	cd test
>
> This 'cd' makes all subsequent tests to be executed in a different
> repository than previously, which breaks 'checkout completes ref
> names'.

Yeah, thanks for spotting and yelling at it ;-).

We really need to be careful about tests that cd around.  Even the
ones that only go down and expect the rest of the test to run in
that subdirectory may later have to be modified by somebody to run
back at the original level, and writing "cd ..", which leads to all
sorts of problems, becomes too tempting.

>> +'
>> +
>>  test_expect_success 'basic' '
>>  	run_completion "git \"\"" &&
>>  	# built-in
>> @@ -228,4 +244,9 @@ test_expect_success 'general options plus command' '
>>  	test_completion "git --no-replace-objects check" "checkout "
>>  '
>>  
>> +test_expect_success 'send-email' '
>> +	test_completion "git send-email --cov" "--cover-letter " &&
>> +	test_completion "git send-email ma" "master "
>> +'
>> +
>>  test_done
>> -- 
>> 1.7.12.1
>> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] completion: add format-patch options to send-email
  2012-10-15 22:48 ` SZEDER Gábor
  2012-10-15 23:28   ` Junio C Hamano
@ 2012-10-15 23:37   ` Felipe Contreras
  2012-10-15 23:55     ` SZEDER Gábor
  2012-10-15 23:57     ` Felipe Contreras
  1 sibling, 2 replies; 6+ messages in thread
From: Felipe Contreras @ 2012-10-15 23:37 UTC (permalink / raw)
  To: SZEDER Gábor; +Cc: git, Junio C Hamano

On Tue, Oct 16, 2012 at 12:48 AM, SZEDER Gábor <szeder@ira.uka.de> wrote:

>> @@ -1559,11 +1559,12 @@ _git_send_email ()
>>                       --signed-off-by-cc --smtp-pass --smtp-server
>>                       --smtp-server-port --smtp-encryption= --smtp-user
>>                       --subject --suppress-cc= --suppress-from --thread --to
>> -                     --validate --no-validate"
>> +                     --validate --no-validate
>> +                     $__git_format_patch_options"
>>               return
>>               ;;
>>       esac
>> -     COMPREPLY=()
>> +     __git_complete_revlist_file
>
> While send-email accepts a rev-list, it doesn't accept
> 'HEAD:Documentation', does it?  So __git_complete_revlist() would be
> better here, because that makes the intent clear.

Then _git_send_email should be fixed first. I'm simply doing the same
as _git_send_email.

>> diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
>> index 92d7eb4..c4b6c13 100755
>> --- a/t/t9902-completion.sh
>> +++ b/t/t9902-completion.sh
>> @@ -146,6 +146,22 @@ test_expect_success '__gitcomp - suffix' '
>>       test_cmp expected out
>>  '
>>
>> +setup_repository ()
>> +{
>> +     mkdir "$1" && (
>> +     cd "$1" &&
>> +     git init &&
>> +     test_tick &&
>> +     git commit --allow-empty -m "Initial"
>> +     )
>> +}
>> +
>> +test_expect_success 'prepare' '
>> +     setup_repository one &&
>> +     git clone one test &&
>
> Why are these new repositories needed?

Because otherwise 'git send-email ma' wouldn't succeed.

>> +     cd test
>
> This 'cd' makes all subsequent tests to be executed in a different
> repository than previously, which breaks 'checkout completes ref
> names'.

I don't know which test you are talking about, it's not on my repo,
and all the completion test pass with this patch.

Cheers.

-- 
Felipe Contreras

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] completion: add format-patch options to send-email
  2012-10-15 23:37   ` Felipe Contreras
@ 2012-10-15 23:55     ` SZEDER Gábor
  2012-10-15 23:57     ` Felipe Contreras
  1 sibling, 0 replies; 6+ messages in thread
From: SZEDER Gábor @ 2012-10-15 23:55 UTC (permalink / raw)
  To: Felipe Contreras; +Cc: git, Junio C Hamano

On Tue, Oct 16, 2012 at 01:37:35AM +0200, Felipe Contreras wrote:
> On Tue, Oct 16, 2012 at 12:48 AM, SZEDER Gábor <szeder@ira.uka.de> wrote:
> 
> >> @@ -1559,11 +1559,12 @@ _git_send_email ()
> >>                       --signed-off-by-cc --smtp-pass --smtp-server
> >>                       --smtp-server-port --smtp-encryption= --smtp-user
> >>                       --subject --suppress-cc= --suppress-from --thread --to
> >> -                     --validate --no-validate"
> >> +                     --validate --no-validate
> >> +                     $__git_format_patch_options"
> >>               return
> >>               ;;
> >>       esac
> >> -     COMPREPLY=()
> >> +     __git_complete_revlist_file
> >
> > While send-email accepts a rev-list, it doesn't accept
> > 'HEAD:Documentation', does it?  So __git_complete_revlist() would be
> > better here, because that makes the intent clear.
> 
> Then _git_send_email should be fixed first. I'm simply doing the same
> as _git_send_email.

I can't decipher this recursion here.

> >> diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
> >> index 92d7eb4..c4b6c13 100755
> >> --- a/t/t9902-completion.sh
> >> +++ b/t/t9902-completion.sh
> >> @@ -146,6 +146,22 @@ test_expect_success '__gitcomp - suffix' '
> >>       test_cmp expected out
> >>  '
> >>
> >> +setup_repository ()
> >> +{
> >> +     mkdir "$1" && (
> >> +     cd "$1" &&
> >> +     git init &&
> >> +     test_tick &&
> >> +     git commit --allow-empty -m "Initial"
> >> +     )
> >> +}
> >> +
> >> +test_expect_success 'prepare' '
> >> +     setup_repository one &&
> >> +     git clone one test &&
> >
> > Why are these new repositories needed?
> 
> Because otherwise 'git send-email ma' wouldn't succeed.

Even then you don't need two additional repos, because just one
commit in the test repo would suffice.  And the test 'setup for ref
completion' already takes care of that.

> >> +     cd test
> >
> > This 'cd' makes all subsequent tests to be executed in a different
> > repository than previously, which breaks 'checkout completes ref
> > names'.
> 
> I don't know which test you are talking about, it's not on my repo,
> and all the completion test pass with this patch.

It's in v1.8.0-rc0~1^2 (t9902: add completion tests for "odd" filenames,
2012-09-26), which is the commit your patch conflicts with.


Best,
Gábor

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] completion: add format-patch options to send-email
  2012-10-15 23:37   ` Felipe Contreras
  2012-10-15 23:55     ` SZEDER Gábor
@ 2012-10-15 23:57     ` Felipe Contreras
  1 sibling, 0 replies; 6+ messages in thread
From: Felipe Contreras @ 2012-10-15 23:57 UTC (permalink / raw)
  To: SZEDER Gábor; +Cc: git, Junio C Hamano

On Tue, Oct 16, 2012 at 1:37 AM, Felipe Contreras
<felipe.contreras@gmail.com> wrote:
> On Tue, Oct 16, 2012 at 12:48 AM, SZEDER Gábor <szeder@ira.uka.de> wrote:

>>> +     cd test
>>
>> This 'cd' makes all subsequent tests to be executed in a different
>> repository than previously, which breaks 'checkout completes ref
>> names'.
>
> I don't know which test you are talking about, it's not on my repo,
> and all the completion test pass with this patch.

Maybe this then:

test_expect_success 'prepare' '
	git init &&
	test_tick &&
	git commit --allow-empty -m "Initial"
'

I originally created those for some push and fetch tests, but that
required too many reorganizations, and I got fed up with the review,
so I dropped the series[1].

Cheers.

[1] http://article.gmane.org/gmane.comp.version-control.git/197226

-- 
Felipe Contreras

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-10-15 23:57 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-14 16:14 [PATCH] completion: add format-patch options to send-email Felipe Contreras
2012-10-15 22:48 ` SZEDER Gábor
2012-10-15 23:28   ` Junio C Hamano
2012-10-15 23:37   ` Felipe Contreras
2012-10-15 23:55     ` SZEDER Gábor
2012-10-15 23:57     ` Felipe Contreras

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).