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

[PATCH 2/2] git-shortlog: make common repository prefix configurable with .mailmap

From
Junio C Hamano <junkio@cox.net>
Date
Nov 25, 2006, 08:11 UTC
Message-ID
<7vejrs54kp.fsf@assigned-by-dhcp.cox.net>

The code had "/pub/scm/linux/kernel/git/" hardcoded which was too specific to the kernel project.

With this, a line in the .mailmap file:
	# repo-abbrev: /pub/scm/linux/kernel/git/

can be used to cause the substring to be abbreviated to /.../ on the title line of the commit message.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 builtin-shortlog.c    |   24 ++++++++++++++++++++++--
 contrib/mailmap.linux |    2 ++
 2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/builtin-shortlog.c b/builtin-shortlog.c
index bdd952c..b5b13de 100644
--- a/builtin-shortlog.c
+++ b/builtin-shortlog.c
@@ -9,6 +9,8 @@
 static const char shortlog_usage[] =
 "git-shortlog [-n] [-s] [<commit-id>... ]";
 
+static char *common_repo_prefix;
+
 static int compare_by_number(const void *a1, const void *a2)
 {
 	const struct path_list_item *i1 = a1, *i2 = a2;
@@ -35,8 +37,26 @@ static int read_mailmap(const char *filename)
 		char *end_of_name, *left_bracket, *right_bracket;
 		char *name, *email;
 		int i;
-		if (buffer[0] == '#')
+		if (buffer[0] == '#') {
+			static const char abbrev[] = "# repo-abbrev:";
+			int abblen = sizeof(abbrev) - 1;
+			int len = strlen(buffer);
+
+			if (len && buffer[len - 1] == '\n')
+				buffer[--len] = 0;
+			if (!strncmp(buffer, abbrev, abblen)) {
+				char *cp;
+
+				if (common_repo_prefix)
+					free(common_repo_prefix);
+				common_repo_prefix = xmalloc(len);
+
+				for (cp = buffer + abblen; isspace(*cp); cp++)
+					; /* nothing */
+				strcpy(common_repo_prefix, cp);
+			}
 			continue;
+		}
 		if ((left_bracket = strchr(buffer, '<')) == NULL)
 			continue;
 		if ((right_bracket = strchr(left_bracket + 1, '>')) == NULL)
@@ -87,7 +107,7 @@ static void insert_author_oneline(struct path_list *list,
 		const char *author, int authorlen,
 		const char *oneline, int onelinelen)
 {
-	const char *dot3 = "/pub/scm/linux/kernel/git/";
+	const char *dot3 = common_repo_prefix;
 	char *buffer, *p;
 	struct path_list_item *item;
 	struct path_list *onelines;
diff --git a/contrib/mailmap.linux b/contrib/mailmap.linux
index 83927c9..e4907f8 100644
--- a/contrib/mailmap.linux
+++ b/contrib/mailmap.linux
@@ -3,6 +3,8 @@
 # So have an email->real name table to translate the
 # (hopefully few) missing names
 #
+# repo-abbrev: /pub/scm/linux/kernel/git/
+#
 Adrian Bunk <bunk@stusta.de>
 Andreas Herrmann <aherrman@de.ibm.com>
 Andrew Morton <akpm@osdl.org>
-- 
1.4.4.1.g61fba
Next: Ævar Arnfjörð Bjarmason
Message 1 of 50 in “git-shortlog: make common repository prefix configurable with .mailmap”
  1. 2/2 git-shortlog: make common repository prefix configurable with .mailmapJunio C Hamano, Nov 25, 2006
  2. shortlog: remove unused(?) "repo-abbrev" featureÆvar Arnfjörð Bjarmason, Jan 5, 2021
  3. Linus TorvaldsJan 5, 2021
  4. Martin ÅgrenJan 5, 2021
  5. Junio C HamanoJan 5, 2021
  6. 20/22 mailmap tests: add tests for empty "<>" syntaxÆvar Arnfjörð Bjarmason, Jan 12, 2021
  7. 19/22 mailmap tests: add tests for whitespace syntaxÆvar Arnfjörð Bjarmason, Jan 12, 2021
  8. 21/22 mailmap doc + tests: document and test for case-insensitivityÆvar Arnfjörð Bjarmason, Jan 12, 2021
  9. 22/22 shortlog: remove unused(?) "repo-abbrev" featureÆvar Arnfjörð Bjarmason, Jan 12, 2021
  10. 16/22 tests: refactor a few tests to use "test_commit --append"Ævar Arnfjörð Bjarmason, Jan 12, 2021
  11. 15/22 test-lib functions: add an --append option to test_commitÆvar Arnfjörð Bjarmason, Jan 12, 2021
  12. 09/22 mailmap tests: add a test for "not a blob" errorÆvar Arnfjörð Bjarmason, Jan 12, 2021
  13. Junio C HamanoJan 12, 2021
  14. 12/22 test-lib functions: expand "test_commit" comment templateÆvar Arnfjörð Bjarmason, Jan 12, 2021
  15. 11/22 mailmap: test for silent exiting on missing file/blobÆvar Arnfjörð Bjarmason, Jan 12, 2021
  16. 14/22 test-lib functions: add --author support to test_commitÆvar Arnfjörð Bjarmason, Jan 12, 2021
  17. Junio C HamanoJan 12, 2021
  18. Denton LiuJan 14, 2021
  19. 13/22 test-lib functions: document arguments to test_commitÆvar Arnfjörð Bjarmason, Jan 12, 2021
  20. 10/22 mailmap tests: get rid of overly complex blame fuzzingÆvar Arnfjörð Bjarmason, Jan 12, 2021
  21. Junio C HamanoJan 12, 2021
  22. Junio C HamanoJan 14, 2021
  23. 08/22 mailmap tests: remove redundant entry in testÆvar Arnfjörð Bjarmason, Jan 12, 2021
  24. 07/22 mailmap tests: improve --stdin testsÆvar Arnfjörð Bjarmason, Jan 12, 2021
  25. 17/22 mailmap doc + tests: add better examples & test themÆvar Arnfjörð Bjarmason, Jan 12, 2021
  26. 18/22 mailmap tests: add a test for comment syntaxÆvar Arnfjörð Bjarmason, Jan 12, 2021
  27. 06/22 mailmap tests: modernize syntax & test idiomsÆvar Arnfjörð Bjarmason, Jan 12, 2021
  28. Denton LiuJan 14, 2021
  29. Junio C HamanoJan 14, 2021
  30. 05/22 mailmap tests: use our preferred whitespace syntaxÆvar Arnfjörð Bjarmason, Jan 12, 2021
  31. 04/22 mailmap doc: start by mentioning the comment syntaxÆvar Arnfjörð Bjarmason, Jan 12, 2021
  32. 03/22 check-mailmap doc: note config optionsÆvar Arnfjörð Bjarmason, Jan 12, 2021
  33. 01/22 mailmap doc: create a new "gitmailmap(5)" man pageÆvar Arnfjörð Bjarmason, Jan 12, 2021
  34. Philippe BlainJan 14, 2021
  35. Junio C HamanoJan 14, 2021
  36. Philippe BlainJan 15, 2021
  37. Junio C HamanoJan 15, 2021
  38. Philippe BlainJan 15, 2021
  39. Junio C HamanoJan 15, 2021
  40. fixup! mailmap doc: create a new "gitmailmap(5)" man pagePhilippe Blain, Jan 15, 2021
  41. mailmap doc: use correct environment variable 'GIT_WORK_TREE'Philippe Blain, Jan 15, 2021
  42. 00/22 mailmap: doc + test fixesÆvar Arnfjörð Bjarmason, Jan 12, 2021
  43. Junio C HamanoJan 12, 2021
  44. Ævar Arnfjörð BjarmasonJan 14, 2021
  45. 0/2 mailmap: test cleanupDenton Liu, Jan 14, 2021
  46. 1/2 test-lib-functions.sh: fix usage for test_commit()Denton Liu, Jan 14, 2021
  47. Ævar Arnfjörð BjarmasonJan 15, 2021
  48. 2/2 t4203: stop losing return codes of git commandsDenton Liu, Jan 14, 2021
  49. Ævar Arnfjörð BjarmasonJan 15, 2021
  50. 02/22 mailmap doc: quote config variables `like.this`Ævar Arnfjörð Bjarmason, Jan 12, 2021

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.