Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
shortlog: Document and test --format option
Do not document the --pretty synonym, since it takes too long to
explain the name to people.

Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jonathan Nieder authored and Junio C Hamano committed May 4, 2010
1 parent ed715b5 commit 6003724
Show file tree
Hide file tree
Showing 2 changed files with 60 additions and 1 deletion.
8 changes: 8 additions & 0 deletions Documentation/git-shortlog.txt
Expand Up @@ -44,6 +44,14 @@ OPTIONS
--email::
Show the email address of each author.

--format[='<format>']::
Instead of the commit subject, use some other information to
describe each commit. '<format>' can be any string accepted
by the `--format` option of 'git log', such as '{asterisk} [%h] %s'.
(See the "PRETTY FORMATS" section of linkgit:git-log[1].)

Each pretty-printed commit will be rewrapped before it is shown.

-w[<width>[,<indent1>[,<indent2>]]]::
Linewrap the output by wrapping each line at `width`. The first
line of each entry is indented by `indent1` spaces, and the second
Expand Down
53 changes: 52 additions & 1 deletion t/t4201-shortlog.sh
Expand Up @@ -39,7 +39,58 @@ test_expect_success 'setup' '
echo 6 >a1 &&
git commit --quiet -m "Commit by someone else" \
--author="Someone else <not!me>" a1
--author="Someone else <not!me>" a1 &&
cat >expect.template <<-\EOF
A U Thor (5):
SUBJECT
SUBJECT
SUBJECT
SUBJECT
SUBJECT
Someone else (1):
SUBJECT
EOF
'

fuzz() {
file=$1 &&
sed "
s/$_x40/OBJECT_NAME/g
s/$_x05/OBJID/g
s/^ \{6\}[CTa].*/ SUBJECT/g
s/^ \{8\}[^ ].*/ CONTINUATION/g
" <"$file" >"$file.fuzzy" &&
sed "/CONTINUATION/ d" <"$file.fuzzy"
}

test_expect_success 'default output format' '
git shortlog HEAD >log &&
fuzz log >log.predictable &&
test_cmp expect.template log.predictable
'

test_expect_success 'pretty format' '
sed s/SUBJECT/OBJECT_NAME/ expect.template >expect &&
git shortlog --format="%H" HEAD >log &&
fuzz log >log.predictable &&
test_cmp expect log.predictable
'

test_expect_failure '--abbrev' '
sed s/SUBJECT/OBJID/ expect.template >expect &&
git shortlog --format="%h" --abbrev=5 HEAD >log &&
fuzz log >log.predictable &&
test_cmp expect log.predictable
'

test_expect_success 'output from user-defined format is re-wrapped' '
sed "s/SUBJECT/two lines/" expect.template >expect &&
git shortlog --format="two%nlines" HEAD >log &&
fuzz log >log.predictable &&
test_cmp expect log.predictable
'

test_expect_success 'shortlog wrapping' '
Expand Down

0 comments on commit 6003724

Please sign in to comment.