git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/2] teach git pull to handle --log=<n>
@ 2015-05-13  9:17 Paul Tan
  2015-05-13  9:17 ` [PATCH 1/2] t5524: test --log=1 limits shortlog length Paul Tan
                   ` (3 more replies)
  0 siblings, 4 replies; 9+ messages in thread
From: Paul Tan @ 2015-05-13  9:17 UTC (permalink / raw)
  To: git; +Cc: Stefan Beller, Johannes Schindelin, Paul Tan

Since efb779f (merge, pull: add '--(no-)log' command line option,
2008-04-06) git-pull supported the (--no-)log switch and would pass it
to git-merge.

96e9420 (merge: Make '--log' an integer option for number of shortlog
entries, 2010-09-08) implemented support for the --log=<n> switch, which
would explicitly set the number of shortlog entries. However, git-pull
does not recognize this option, and will instead pass it to git-fetch,
leading to "unknown option" errors.

This patch series implements a failing test that demonstrates the above,
and teaches git-pull to handle the switch --log=<n>.

Paul Tan (2):
  t5524: test --log=1 limits shortlog length
  pull: handle --log=<n>

 git-pull.sh         |  4 ++--
 t/t5524-pull-msg.sh | 17 +++++++++++++++++
 2 files changed, 19 insertions(+), 2 deletions(-)

-- 
2.1.4

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

* [PATCH 1/2] t5524: test --log=1 limits shortlog length
  2015-05-13  9:17 [PATCH 0/2] teach git pull to handle --log=<n> Paul Tan
@ 2015-05-13  9:17 ` Paul Tan
  2015-05-13  9:17 ` [PATCH 2/2] pull: handle --log=<n> Paul Tan
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 9+ messages in thread
From: Paul Tan @ 2015-05-13  9:17 UTC (permalink / raw)
  To: git; +Cc: Stefan Beller, Johannes Schindelin, Paul Tan,
	Ramkumar Ramachandra

Since efb779f (merge, pull: add '--(no-)log' command line option,
2008-04-06) git-pull supported the (--no-)log switch and would pass it
to git-merge.

96e9420 (merge: Make '--log' an integer option for number of shortlog
entries, 2010-09-08) implemented support for the --log=<n> switch, which
would explicitly set the number of shortlog entries. However, git-pull
does not recognize this option, and will instead pass it to git-fetch,
leading to "unknown option" errors.

Implement a failing test that demonstrates this.

Signed-off-by: Paul Tan <pyokagan@gmail.com>
---
 t/t5524-pull-msg.sh | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/t/t5524-pull-msg.sh b/t/t5524-pull-msg.sh
index 8cccecc..593405d 100755
--- a/t/t5524-pull-msg.sh
+++ b/t/t5524-pull-msg.sh
@@ -17,6 +17,9 @@ test_expect_success setup '
 		git commit -m "add bfile"
 	) &&
 	test_tick && test_tick &&
+	echo "second" >afile &&
+	git add afile &&
+	git commit -m "second commit" &&
 	echo "original $dollar" >afile &&
 	git add afile &&
 	git commit -m "do not clobber $dollar signs"
@@ -32,4 +35,18 @@ test_expect_success pull '
 )
 '
 
+test_expect_failure '--log=1 limits shortlog length' '
+(
+	cd cloned &&
+	git reset --hard HEAD^ &&
+	verbose test "$(cat afile)" = original &&
+	verbose test "$(cat bfile)" = added &&
+	git pull --log=1 &&
+	git log -3 &&
+	git cat-file commit HEAD >result &&
+	verbose grep Dollar result &&
+	verbose grep -v "second commit" result
+)
+'
+
 test_done
-- 
2.1.4

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

* [PATCH 2/2] pull: handle --log=<n>
  2015-05-13  9:17 [PATCH 0/2] teach git pull to handle --log=<n> Paul Tan
  2015-05-13  9:17 ` [PATCH 1/2] t5524: test --log=1 limits shortlog length Paul Tan
@ 2015-05-13  9:17 ` Paul Tan
  2015-05-13  9:38   ` Matthieu Moy
  2015-05-13  9:40 ` [PATCH 0/2] teach git pull to " Matthieu Moy
  2015-05-14 17:11 ` Junio C Hamano
  3 siblings, 1 reply; 9+ messages in thread
From: Paul Tan @ 2015-05-13  9:17 UTC (permalink / raw)
  To: git; +Cc: Stefan Beller, Johannes Schindelin, Paul Tan,
	Ramkumar Ramachandra

Since efb779f (merge, pull: add '--(no-)log' command line option,
2008-04-06) git-pull supported the (--no-)log switch and would pass it
to git-merge.

96e9420 (merge: Make '--log' an integer option for number of shortlog
entries, 2010-09-08) implemented support for the --log=<n> switch, which
would explicitly set the number of shortlog entries. However, git-pull
does not recognize this option, and will instead pass it to git-fetch,
leading to "unknown option" errors.

Fix this by matching --log=* in addition to --log and --no-log.

This fixes the failing test '--log=1 limits shortlog length'.

Signed-off-by: Paul Tan <pyokagan@gmail.com>
---
 git-pull.sh         | 4 ++--
 t/t5524-pull-msg.sh | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/git-pull.sh b/git-pull.sh
index 9ed01fd..5ff4545 100755
--- a/git-pull.sh
+++ b/git-pull.sh
@@ -81,8 +81,8 @@ do
 		diffstat=--no-stat ;;
 	--stat|--summary)
 		diffstat=--stat ;;
-	--log|--no-log)
-		log_arg=$1 ;;
+	--log|--log=*|--no-log)
+		log_arg="$1" ;;
 	--no-c|--no-co|--no-com|--no-comm|--no-commi|--no-commit)
 		no_commit=--no-commit ;;
 	--c|--co|--com|--comm|--commi|--commit)
diff --git a/t/t5524-pull-msg.sh b/t/t5524-pull-msg.sh
index 593405d..64754b1 100755
--- a/t/t5524-pull-msg.sh
+++ b/t/t5524-pull-msg.sh
@@ -35,7 +35,7 @@ test_expect_success pull '
 )
 '
 
-test_expect_failure '--log=1 limits shortlog length' '
+test_expect_success '--log=1 limits shortlog length' '
 (
 	cd cloned &&
 	git reset --hard HEAD^ &&
-- 
2.1.4

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

* Re: [PATCH 2/2] pull: handle --log=<n>
  2015-05-13  9:17 ` [PATCH 2/2] pull: handle --log=<n> Paul Tan
@ 2015-05-13  9:38   ` Matthieu Moy
  2015-05-13 12:23     ` Johannes Schindelin
  0 siblings, 1 reply; 9+ messages in thread
From: Matthieu Moy @ 2015-05-13  9:38 UTC (permalink / raw)
  To: Paul Tan; +Cc: git, Stefan Beller, Johannes Schindelin, Ramkumar Ramachandra

Paul Tan <pyokagan@gmail.com> writes:

> -	--log|--no-log)
> -		log_arg=$1 ;;
> +	--log|--log=*|--no-log)
> +		log_arg="$1" ;;

I think you actually don't need the double quotes here (var=$value works
even if $value has spaces IIRC), but they don't harm and I prefer having
them.

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

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

* Re: [PATCH 0/2] teach git pull to handle --log=<n>
  2015-05-13  9:17 [PATCH 0/2] teach git pull to handle --log=<n> Paul Tan
  2015-05-13  9:17 ` [PATCH 1/2] t5524: test --log=1 limits shortlog length Paul Tan
  2015-05-13  9:17 ` [PATCH 2/2] pull: handle --log=<n> Paul Tan
@ 2015-05-13  9:40 ` Matthieu Moy
  2015-05-14 17:11 ` Junio C Hamano
  3 siblings, 0 replies; 9+ messages in thread
From: Matthieu Moy @ 2015-05-13  9:40 UTC (permalink / raw)
  To: Paul Tan; +Cc: git, Stefan Beller, Johannes Schindelin

Paul Tan <pyokagan@gmail.com> writes:

> Paul Tan (2):
>   t5524: test --log=1 limits shortlog length
>   pull: handle --log=<n>
>
>  git-pull.sh         |  4 ++--
>  t/t5524-pull-msg.sh | 17 +++++++++++++++++
>  2 files changed, 19 insertions(+), 2 deletions(-)

I thought you forgot to update the documentation, but by the magic of
ascidoc includes, the feature was already documented even though it was
not implemented ;-).

Reviewed-by: Matthieu Moy <Matthieu.Moy@imag.fr>

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

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

* Re: [PATCH 2/2] pull: handle --log=<n>
  2015-05-13  9:38   ` Matthieu Moy
@ 2015-05-13 12:23     ` Johannes Schindelin
  2015-05-13 20:03       ` Matthieu Moy
  0 siblings, 1 reply; 9+ messages in thread
From: Johannes Schindelin @ 2015-05-13 12:23 UTC (permalink / raw)
  To: Matthieu Moy; +Cc: Paul Tan, git, Stefan Beller, Ramkumar Ramachandra

Hi Matthieu,

On 2015-05-13 11:38, Matthieu Moy wrote:
> Paul Tan <pyokagan@gmail.com> writes:
> 
>> -	--log|--no-log)
>> -		log_arg=$1 ;;
>> +	--log|--log=*|--no-log)
>> +		log_arg="$1" ;;
> 
> I think you actually don't need the double quotes here (var=$value works
> even if $value has spaces IIRC), but they don't harm and I prefer having
> them.

I am far from a shell expert, but IIRC "$1" converts all whitespace to single spaces. In general, you therefore want to quote arguments, just in case.

Ciao,
Dscho

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

* Re: [PATCH 2/2] pull: handle --log=<n>
  2015-05-13 12:23     ` Johannes Schindelin
@ 2015-05-13 20:03       ` Matthieu Moy
  0 siblings, 0 replies; 9+ messages in thread
From: Matthieu Moy @ 2015-05-13 20:03 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Paul Tan, git, Stefan Beller, Ramkumar Ramachandra

Johannes Schindelin <johannes.schindelin@gmx.de> writes:

> Hi Matthieu,
>
> On 2015-05-13 11:38, Matthieu Moy wrote:
>> Paul Tan <pyokagan@gmail.com> writes:
>> 
>>> -	--log|--no-log)
>>> -		log_arg=$1 ;;
>>> +	--log|--log=*|--no-log)
>>> +		log_arg="$1" ;;
>> 
>> I think you actually don't need the double quotes here (var=$value works
>> even if $value has spaces IIRC), but they don't harm and I prefer having
>> them.
>
> I am far from a shell expert, but IIRC "$1" converts all whitespace to
> single spaces.

In most places, $1 is split before being interpreted, but there are
exceptions and actually the RHS of assignment is one of them. Just for
curiosity, I digged a reference:

https://www.gnu.org/software/autoconf/manual/autoconf-2.67/html_node/Shell-Substitutions.html
http://unix.stackexchange.com/questions/68694/when-is-double-quoting-necessary

> In general, you therefore want to quote arguments, just in case.

Yes, and one benefit of quoting anyway is to avoid having to have the
discussion we're having ;-).

-- 
Matthieu Moy
http://www-verimag.imag.fr/~moy/

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

* Re: [PATCH 0/2] teach git pull to handle --log=<n>
  2015-05-13  9:17 [PATCH 0/2] teach git pull to handle --log=<n> Paul Tan
                   ` (2 preceding siblings ...)
  2015-05-13  9:40 ` [PATCH 0/2] teach git pull to " Matthieu Moy
@ 2015-05-14 17:11 ` Junio C Hamano
  2015-05-15 11:15   ` Paul Tan
  3 siblings, 1 reply; 9+ messages in thread
From: Junio C Hamano @ 2015-05-14 17:11 UTC (permalink / raw)
  To: Paul Tan; +Cc: git, Stefan Beller, Johannes Schindelin

Paul Tan <pyokagan@gmail.com> writes:

> Since efb779f (merge, pull: add '--(no-)log' command line option,
> 2008-04-06) git-pull supported the (--no-)log switch and would pass it
> to git-merge.
>
> 96e9420 (merge: Make '--log' an integer option for number of shortlog
> entries, 2010-09-08) implemented support for the --log=<n> switch, which
> would explicitly set the number of shortlog entries. However, git-pull
> does not recognize this option, and will instead pass it to git-fetch,
> leading to "unknown option" errors.
>
> This patch series implements a failing test that demonstrates the above,
> and teaches git-pull to handle the switch --log=<n>.

Looks good.

One advice; for a small patch like this one (and the "pull.ff vs
merge.ff" one, too), it is not necessary or even desirable to do a
two-step "first add a failure test and then another patch to fix and
flip the expectation" series.  Just do the fix and add a test to
expect success.

After all, the primary reason why we add test is *not* for you to
demonstrate that what you did works as expected.  It is to catch
other people breaking what you did in the future.

Thanks.

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

* Re: [PATCH 0/2] teach git pull to handle --log=<n>
  2015-05-14 17:11 ` Junio C Hamano
@ 2015-05-15 11:15   ` Paul Tan
  0 siblings, 0 replies; 9+ messages in thread
From: Paul Tan @ 2015-05-15 11:15 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Git List, Stefan Beller, Johannes Schindelin

Hi,

On Fri, May 15, 2015 at 1:11 AM, Junio C Hamano <gitster@pobox.com> wrote:
> One advice; for a small patch like this one (and the "pull.ff vs
> merge.ff" one, too), it is not necessary or even desirable to do a
> two-step "first add a failure test and then another patch to fix and
> flip the expectation" series.  Just do the fix and add a test to
> expect success.
>
> After all, the primary reason why we add test is *not* for you to
> demonstrate that what you did works as expected.  It is to catch
> other people breaking what you did in the future.

Since I will be re-rolling all the patches to remove the use of
"verbose" I guess I will squash the patches as well.

Thanks.

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

end of thread, other threads:[~2015-05-15 11:15 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-05-13  9:17 [PATCH 0/2] teach git pull to handle --log=<n> Paul Tan
2015-05-13  9:17 ` [PATCH 1/2] t5524: test --log=1 limits shortlog length Paul Tan
2015-05-13  9:17 ` [PATCH 2/2] pull: handle --log=<n> Paul Tan
2015-05-13  9:38   ` Matthieu Moy
2015-05-13 12:23     ` Johannes Schindelin
2015-05-13 20:03       ` Matthieu Moy
2015-05-13  9:40 ` [PATCH 0/2] teach git pull to " Matthieu Moy
2015-05-14 17:11 ` Junio C Hamano
2015-05-15 11:15   ` Paul Tan

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