summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: c95044d)
raw | patch | inline | side by side (parent: c95044d)
author | Junio C Hamano <junkio@cox.net> | |
Sat, 25 Nov 2006 08:07:54 +0000 (00:07 -0800) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Sat, 25 Nov 2006 08:07:54 +0000 (00:07 -0800) |
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>
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 | patch | blob | history | |
contrib/mailmap.linux | patch | blob | history |
diff --git a/builtin-shortlog.c b/builtin-shortlog.c
index bdd952c2524140f35f788f5e0cd906c3b390dbe4..b5b13dee3b3a5fe5877762817af9de7dd22d5c4c 100644 (file)
--- a/builtin-shortlog.c
+++ b/builtin-shortlog.c
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;
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)
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 83927c94eef6858fe26a289765a315dece057c43..e4907f80f1500e15cd447bdfa4805d56fcf5db7c 100644 (file)
--- a/contrib/mailmap.linux
+++ b/contrib/mailmap.linux
# 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>