1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-05 02:26:14 +02:00

git-shortlog: make common repository prefix configurable with .mailmap

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>
This commit is contained in:
Junio C Hamano 2006-11-25 00:07:54 -08:00
parent c95044d4f3
commit 7595e2ee6e
2 changed files with 24 additions and 2 deletions

View File

@ -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;

View File

@ -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>