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

[RFC/PATCH 3/2] Wrap lines in shortlog

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Dec 22, 2006, 21:15 UTC
Message-ID
<Pine.LNX.4.63.0612222208310.19693@wbgn013.biozentrum.uni-wuerzburg.de>
In-Reply-To
<7vslf7zrdp.fsf@assigned-by-dhcp.cox.net>
Hi,

It is nicer to wrap the lines of too long oneline descriptions. This patch even works in UTF-8.

The patch is attached, since I cannot find the setting in pine to make it a UTF-8 one. Besides, I deliberately fscked up one test case.

Ciao, Dscho

[PATCH] Use print_wrapped_text() in shortlog

Some oneline descriptions are just too long. In shortlog, it looks much nicer when they are wrapped. Since print_wrapped_text() is UTF-8 aware, it also works with those descriptions.

Signed-off-by: Johannes Schindelin <Johannes.Schindelin@gmx.de>
---
	Probably this should check i18n.commitencoding, too...
 builtin-shortlog.c  |    4 +++-
 t/t4201-shortlog.sh |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 53 insertions(+), 1 deletions(-)
diff --git a/builtin-shortlog.c b/builtin-shortlog.c
index edb4042..30e7cb5 100644
--- a/builtin-shortlog.c
+++ b/builtin-shortlog.c
@@ -4,6 +4,7 @@
 #include "diff.h"
 #include "path-list.h"
 #include "revision.h"
+#include "utf8.h"
 
 static const char shortlog_usage[] =
 "git-shortlog [-n] [-s] [<commit-id>... ]";
@@ -321,7 +322,8 @@ int cmd_shortlog(int argc, const char **argv, const char *prefix)
 		} else {
 			printf("%s (%d):\n", list.items[i].path, onelines->nr);
 			for (j = onelines->nr - 1; j >= 0; j--)
-				printf("      %s\n", onelines->items[j].path);
+				print_wrapped_text(onelines->items[j].path,
+					6, 9, 76);
 			printf("\n");
 		}
 
diff --git a/t/t4201-shortlog.sh b/t/t4201-shortlog.sh
new file mode 100644
index 0000000..e4085f9
--- /dev/null
+++ b/t/t4201-shortlog.sh
@@ -0,0 +1,50 @@
+#!/bin/sh
+#
+# Copyright (c) 2006 Johannes E. Schindelin
+#
+
+test_description='git-shortlog
+'
+
+. ./test-lib.sh
+
+echo 1 > a1
+git add a1
+tree=$(git write-tree)
+commit=$((echo "Test"; echo) | git commit-tree $tree)
+git update-ref HEAD $commit 
+
+echo 2 > a1
+git commit -m "This is a very, very long first line for the commit message to see if it is wrapped correctly" a1
+
+# test if the wrapping is still valid when replacing all i's by treble clefs.
+echo 3 > a1
+git commit -m "$(echo "This is a very, very long first line for the commit message to see if it is wrapped correctly" | sed "s/i/1234/g" | tr 1234 '\360\235\204\236')" a1
+
+# now fsck up the utf8
+git repo-config i18n.commitencoding non-utf-8
+echo 4 > a1
+git commit -m "$(echo "This is a very, very long first line for the commit message to see if it is wrapped correctly" | sed "s/i/1234/g" | tr 1234 '\370\235\204\236')" a1
+
+echo 5 > a1
+git commit -m "a								12	34	56	78" a1
+
+git shortlog HEAD > out
+
+cat > expect << EOF
+A U Thor (5):
+      Test
+      This is a very, very long first line for the commit message to see if
+         it is wrapped correctly
+      Th𝄞s 𝄞s a very, very long f𝄞rst l𝄞ne for the comm𝄞t message to see 𝄞f
+         𝄞t 𝄞s wrapped correctly
+      Thø„žs ø„žs a very, very long fø„žrst lø„žne for the commø„žt
+         message to see ø„žf ø„žt ø„žs wrapped correctly
+      a								12	34
+         56	78
+
+EOF
+
+test_expect_success 'shortlog wrapping' 'diff -u expect out'
+
+test_done
Previous: Johannes Schindelin
Message 39 of 39 in “Fix documentation copy&paste typo”
  1. Fix documentation copy&paste typoUwe Kleine-Koenig, Dec 8, 2006
  2. Uwe Kleine-KönigDec 19, 2006
  3. Junio C HamanoDec 19, 2006
  4. specify charset for commits (Was: [PATCH] Fix documentation copy&paste typo)Uwe Kleine-König, Dec 21, 2006
  5. Johannes SchindelinDec 21, 2006
  6. Santi BéjarDec 21, 2006
  7. Alexander LitvinovDec 21, 2006
  8. Jakub NarebskiDec 21, 2006
  9. Alexander LitvinovDec 21, 2006
  10. Jakub NarebskiDec 21, 2006
  11. Uwe Kleine-KönigDec 21, 2006
  12. Junio C HamanoDec 21, 2006
  13. Nicolas PitreDec 21, 2006
  14. Uwe Kleine-KönigDec 21, 2006
  15. Alexander LitvinovDec 21, 2006
  16. Johannes SchindelinDec 22, 2006
  17. Uwe Kleine-KönigDec 22, 2006
  18. Uwe Kleine-KönigDec 22, 2006
  19. Nicolas PitreDec 22, 2006
  20. Junio C HamanoDec 22, 2006
  21. 1/2 libgit.a: add some UTF-8 handling functionsJohannes Schindelin, Dec 22, 2006
  22. Junio C HamanoDec 22, 2006
  23. Johannes SchindelinDec 22, 2006
  24. Junio C HamanoDec 22, 2006
  25. Johannes SchindelinDec 22, 2006
  26. Junio C HamanoDec 22, 2006
  27. Alexander LitvinovDec 25, 2006
  28. Uwe Kleine-KönigDec 22, 2006
  29. Uwe Kleine-KönigDec 22, 2006
  30. Johannes SchindelinDec 22, 2006
  31. Johannes SchindelinDec 22, 2006
  32. Uwe Kleine-KönigDec 23, 2006
  33. Johannes SchindelinDec 23, 2006
  34. warn non utf-8 commit log messages.Junio C Hamano, Dec 23, 2006
  35. Johannes SchindelinDec 23, 2006
  36. 2/2 git-commit-tree: if i18n.commitencoding is utf-8 (default), check itJohannes Schindelin, Dec 22, 2006
  37. Junio C HamanoDec 22, 2006
  38. Johannes SchindelinDec 22, 2006
  39. 3/2 Wrap lines in shortlogJohannes Schindelin, Dec 22, 2006

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.