From: Ping Yin Date: Tue, 11 Mar 2008 13:52:17 +0000 (+0800) Subject: git-submodule summary: limit summary size X-Git-Tag: v1.5.5-rc0~6^2~3 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=f2dc06a344257df7b9307fc8453af7342409b610;p=git.git git-submodule summary: limit summary size This patch teaches git-submodule an option '--summary-limit|-n ' to limit number of commits in total for the summary of each submodule in the modified case (only a single commit is shown in other cases). Giving 0 will disable the summary; a negative number means unlimted, which is the default. Signed-off-by: Ping Yin Signed-off-by: Junio C Hamano --- diff --git a/git-submodule.sh b/git-submodule.sh index 01f26d341..4d28fc098 100755 --- a/git-submodule.sh +++ b/git-submodule.sh @@ -4,7 +4,9 @@ # # Copyright (c) 2007 Lars Hjemli -USAGE='[--quiet] [--cached] [add [-b branch]|status|init|update|summary []] [--] [...]' +USAGE="[--quiet] [--cached] \ +[add [-b branch]|status|init|update|summary [-n|--summary-limit ] []] \ +[--] [...]" OPTIONS_SPEC= . git-sh-setup require_work_tree @@ -329,6 +331,8 @@ set_name_rev () { # $@ = [commit (default 'HEAD'),] requested paths (default all) # cmd_summary() { + summary_limit=-1 + # parse $args after "submodule ... summary". while test $# -ne 0 do @@ -336,6 +340,15 @@ cmd_summary() { --cached) cached="$1" ;; + -n|--summary-limit) + if summary_limit=$(($2 + 0)) 2>/dev/null && test "$summary_limit" = "$2" + then + : + else + usage + fi + shift + ;; --) shift break @@ -350,6 +363,8 @@ cmd_summary() { shift done + test $summary_limit = 0 && return + if rev=$(git rev-parse --verify "$1^0" 2>/dev/null) then head=$rev @@ -458,8 +473,10 @@ cmd_summary() { else if test $mod_src = 160000 -a $mod_dst = 160000 then + limit= + test $summary_limit -gt 0 && limit="-$summary_limit" GIT_DIR="$name/.git" \ - git log --pretty='format: %m %s' \ + git log $limit --pretty='format: %m %s' \ --first-parent $sha1_src...$sha1_dst elif test $mod_dst = 160000 then