Skip to content

Commit

Permalink
Merge pull request #934 from tfendin/no-merge-summary
Browse files Browse the repository at this point in the history
No merge summary
  • Loading branch information
spacewander authored Aug 17, 2021
2 parents a07c5ec + a7b7f05 commit 0edcf8b
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 81 deletions.
18 changes: 14 additions & 4 deletions bin/git-summary
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ cd "$(git root)" || { echo "Can't cd to top level directory";exit 1; }

SUMMARY_BY_LINE=
DEDUP_BY_EMAIL=
MERGES_ARG=
for arg in "$@"; do
case "$arg" in
--line)
Expand All @@ -13,6 +14,9 @@ for arg in "$@"; do
--dedup-by-email)
DEDUP_BY_EMAIL=1
;;
--no-merges)
MERGES_ARG="--no-merges"
;;
-*)
>&2 echo "unknown argument $arg found"
exit 1
Expand All @@ -31,6 +35,12 @@ if [ -n "$DEDUP_BY_EMAIL" ] && [ -n "$SUMMARY_BY_LINE" ]; then
exit 1
fi

if [ -n "$MERGES_ARG" ] && [ -n "$SUMMARY_BY_LINE" ]; then
>&2 echo "--no-merges used with --line is not supported"
exit 1
fi


commit=""
test $# -ne 0 && commit=$*
project=${PWD##*/}
Expand All @@ -42,7 +52,7 @@ project=${PWD##*/}
date() {
# the $1 can be empty
# shellcheck disable=SC2086
git log --pretty='format: %ai' $1 | cut -d ' ' -f 2
git log $MERGES_ARG --pretty='format: %ai' $1 | cut -d ' ' -f 2
}

#
Expand All @@ -63,7 +73,7 @@ active_days() {

commit_count() {
# shellcheck disable=SC2086
git log --oneline $commit | wc -l | tr -d ' '
git log $MERGES_ARG --oneline $commit | wc -l | tr -d ' '
}

#
Expand Down Expand Up @@ -193,9 +203,9 @@ else
if [ -n "$DEDUP_BY_EMAIL" ]; then
# the $commit can be empty
# shellcheck disable=SC2086
git shortlog -n -s -e $commit | dedup_by_email | format_authors
git shortlog $MERGES_ARG -n -s -e $commit | dedup_by_email | format_authors
else
# shellcheck disable=SC2086
git shortlog -n -s $commit | format_authors
git shortlog $MERGES_ARG -n -s $commit | format_authors
fi
fi
1 change: 1 addition & 0 deletions etc/git-extras-completion.zsh
Original file line number Diff line number Diff line change
Expand Up @@ -322,6 +322,7 @@ _git-standup() {
_git-summary() {
_arguments '--line[summarize with lines rather than commits]'
_arguments '--dedup-by-email[remove duplicate users by the email address]'
_arguments '--no-merges[exclude merge commits]'
__gitex_commits
}

Expand Down
1 change: 1 addition & 0 deletions etc/git-extras.fish
Original file line number Diff line number Diff line change
Expand Up @@ -170,6 +170,7 @@ complete -c git -x -n '__fish_git_using_command standup' -s n -d 'Limit the numb
# summary
complete -c git -n '__fish_git_using_command summary' -l line -d 'summarize with lines rather than commits'
complete -c git -n '__fish_git_using_command summary' -l dedup-by-email -d 'remove duplicate users by the email address'
complete -c git -n '__fish_git_using_command summary' -l no-merges -d 'exclude merge commits'
# release
complete -c git -x -n '__fish_git_using_command release' -s c -d 'Generates/populates the changelog with all commit message since the last tag'
complete -c git -x -n '__fish_git_using_command release' -s r -d 'The "remote" repository that is destination of a push operation'
Expand Down
69 changes: 15 additions & 54 deletions man/git-summary.1
Original file line number Diff line number Diff line change
@@ -1,68 +1,52 @@
.\" generated with Ronn/v0.7.3
.\" http://github.com/rtomayko/ronn/tree/0.7.3
.
.TH "GIT\-SUMMARY" "1" "July 2021" "" "Git Extras"
.
.\" generated with Ronn-NG/v0.9.1
.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
.TH "GIT\-SUMMARY" "1" "August 2021" "" "Git Extras"
.SH "NAME"
\fBgit\-summary\fR \- Show repository summary
.
.SH "SYNOPSIS"
\fBgit\-summary\fR [\-\-line] [\-\-dedup\-by\-email] [<committish or path>]
.
\fBgit\-summary\fR [\-\-dedup\-by\-email] [\-\-no\-merges] [<committish>]
.br
\fBgit\-summary\fR \-\-line [<path>]
.SH "DESCRIPTION"
Shows a summary of the repository\.
.
.SH "OPTIONS"
<committish>
.
.P
Summarize only the range of commits included in the <committish>\.
.
.P
<path>
.
.P
Summarize only the range of files included in the <path>\.
.
.P
\-\-dedup\-by\-email
.
.P
Remove duplicate authors who belong to the same email address\. For example,
.
.IP "" 4
.
.nf

$ git summary
\.\.\.
\|\.\|\.\|\.
133 TJ Holowaychuk 9\.9%
115 Tj Holowaychuk 8\.5%

$ git summary \-\-dedup\-by\-email
\.\.\.
\|\.\|\.\|\.
248 TJ Holowaychuk 18\.4%
.
.fi
.
.IP "" 0
.
.P
This option can not be used together with \fB\-\-line\fR\.
.
\-\-no\-merges
.P
Exclude merge commits\.
.P
\-\-line
.
.P
Summarize with lines other than commits\. When \fB\-\-line\fR is specified, the last argument is treated as <path>\.
.
.P
This option can not be used together with \fB\-\-dedup\-by\-email\fR or \fB\-\-no\-merges\fR\.
.SH "EXAMPLES"
Outputs a repo summary:
.
.IP "" 4
.
.nf

$ git summary

project : express
Expand All @@ -89,65 +73,42 @@ authors :
1 ewoudj
1 isaacs
1 Matt Colyer
.
.fi
.
.IP "" 0
.
.P
This command can also take a committish, and will print a summary for the range of commits included in the committish:
.
.IP "" 4
.
.nf

$ git summary v42\.\.
.
.fi
.
.IP "" 0
.
.P
Outputs a repo summary by line:
.
.IP "" 4
.
.nf

$ git summary \-\-line

project : git\-extras
lines : 26820
authors :
\.\.\.
.
\|\.\|\.\|\.
.fi
.
.IP "" 0
.
.P
Filter with the path:
.
.IP "" 4
.
.nf

$ git summary \-\-line bin/

project : git\-extras
lines : 4420
authors :
\.\.\.
.
\|\.\|\.\|\.
.fi
.
.IP "" 0
.
.SH "AUTHOR"
Written by Tj Holowaychuk <\fItj@vision\-media\.ca\fR>
.
.SH "REPORTING BUGS"
<\fIhttps://github\.com/tj/git\-extras/issues\fR>
.
.SH "SEE ALSO"
<\fIhttps://github\.com/tj/git\-extras\fR>
47 changes: 26 additions & 21 deletions man/git-summary.html

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

9 changes: 7 additions & 2 deletions man/git-summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ git-summary(1) -- Show repository summary

## SYNOPSIS

`git-summary` [--line] [--dedup-by-email] [&lt;committish or path&gt;]
`git-summary` [--dedup-by-email] [--no-merges] [&lt;committish&gt;]
`git-summary` --line [&lt;path&gt;]

## DESCRIPTION

Expand Down Expand Up @@ -33,13 +34,17 @@ Shows a summary of the repository.
...
248 TJ Holowaychuk 18.4%

This option can not be used together with `--line`.
--no-merges

Exclude merge commits.

--line

Summarize with lines other than commits.
When `--line` is specified, the last argument is treated as &lt;path&gt;.

This option can not be used together with `--dedup-by-email` or `--no-merges`.

## EXAMPLES

Outputs a repo summary:
Expand Down

0 comments on commit 0edcf8b

Please sign in to comment.