pull: handle --log=<n>
authorPaul Tan <pyokagan@gmail.com>
Mon, 18 May 2015 13:39:56 +0000 (21:39 +0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 18 May 2015 18:19:36 +0000 (11:19 -0700)
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.

Implement a test for this use case.

Signed-off-by: Paul Tan <pyokagan@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-pull.sh
t/t5524-pull-msg.sh
index 4d4fc77b05648c7d2d76ae932b7d68cdf411d364..13e9d37efa61610e13d21f88325a045d276ec776 100755 (executable)
@@ -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)
index 8cccecc2fcce0c1a9b1f90a30608ab9e9b662eae..c278adaa5a2556327a820cdeb98943b58d1e429f 100755 (executable)
@@ -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_success '--log=1 limits shortlog length' '
+(
+       cd cloned &&
+       git reset --hard HEAD^ &&
+       test "$(cat afile)" = original &&
+       test "$(cat bfile)" = added &&
+       git pull --log=1 &&
+       git log -3 &&
+       git cat-file commit HEAD >result &&
+       grep Dollar result &&
+       ! grep "second commit" result
+)
+'
+
 test_done