git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 4/5] shortlog: Document and test --format option

From
Jonathan Nieder <jrnieder@gmail.com>
Date
May 4, 2010, 02:59 UTC
Message-ID
<20100504025954.GE7322@progeny.tock>
In-Reply-To
<20100504025217.GA7322@progeny.tock>

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>
---
 - Pass HEAD to shortlog
 - Use {asterisk} helper for manual
 Documentation/git-shortlog.txt |    8 ++++++
 t/t4201-shortlog.sh            |   53 +++++++++++++++++++++++++++++++++++++++-
 2 files changed, 60 insertions(+), 1 deletions(-)
diff --git a/Documentation/git-shortlog.txt b/Documentation/git-shortlog.txt
index f11ea90..a820fcb 100644
--- a/Documentation/git-shortlog.txt
+++ b/Documentation/git-shortlog.txt
@@ -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
diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh
index 6bfd0c0..13fdeb2 100755
--- a/t/t4201-shortlog.sh
+++ b/t/t4201-shortlog.sh
@@ -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' '
-- 
1.6.5
Previous: Jonathan NiederNext: Jonathan Nieder
Message 13 of 16 in “What's cooking in git.git (May 2010, #01; Sun, 2)”
  1. Junio C HamanoMay 2, 2010
  2. Johannes SixtMay 2, 2010
  3. 1/2 Have set_try_to_free_routine return the previous routineJohannes Sixt, May 8, 2010
  4. 2/2 Do not call release_pack_memory in malloc wrappers when GIT_TRACE is usedJohannes Sixt, May 8, 2010
  5. Jakub NarebskiMay 3, 2010
  6. Will PalmerMay 3, 2010
  7. jn/shortlog (Re: What's cooking in git.git (May 2010, #01; Sun, 2))Jonathan Nieder, May 4, 2010
  8. Jonathan NiederMay 4, 2010
  9. 0/5 jn/shortlogJonathan Nieder, May 4, 2010
  10. 1/5 Documentation/shortlog: scripted users should not rely on implicit HEADJonathan Nieder, May 4, 2010
  11. 2/5 t4201 (shortlog): guard setup with test_expect_successJonathan Nieder, May 4, 2010
  12. 3/5 t4201 (shortlog): Test output format with multiple authorsJonathan Nieder, May 4, 2010
  13. 4/5 shortlog: Document and test --format optionJonathan Nieder, May 4, 2010
  14. 5/5 pretty: Respect --abbrev optionJonathan Nieder, May 4, 2010
  15. Jonathan NiederMay 4, 2010
  16. Clemens BuchacherMay 8, 2010

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.