mirror of
https://github.com/git/git.git
synced 2024-11-23 01:46:13 +08:00
check-mailmap: add options for additional mailmap sources
The git check-mailmap command reads the mailmap from either the default .mailmap location and then from the mailmap.blob and mailmap.file configurations. A following change to git send-email will want to support new configuration options based on the configured identity. The identity-based configuration and options only make sense in the context of git send-email. Expose the read_mailmap_file and read_mailmap_blob functions from mailmap.c. Teach git check-mailmap the --mailmap-file and --mailmap-blob options which load the additional mailmap sources. Signed-off-by: Jacob Keller <jacob.keller@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
3a27e991f2
commit
f54ca6ae72
@ -27,6 +27,16 @@ OPTIONS
|
||||
Read contacts, one per line, from the standard input after exhausting
|
||||
contacts provided on the command-line.
|
||||
|
||||
--mailmap-file=<file>::
|
||||
In addition to any configured mailmap files, read the specified
|
||||
mailmap file. Entries in this file take precedence over entries in
|
||||
either the default mailmap file or any configured mailmap file.
|
||||
|
||||
--mailmap-blob=<blob>::
|
||||
Like `--mailmap-file`, but consider the value as a reference to a
|
||||
blob in the repository. If both `--mailmap-file` and
|
||||
`--mailmap-blob` are specified, entries in `--mailmap-file` will
|
||||
take precedence.
|
||||
|
||||
OUTPUT
|
||||
------
|
||||
|
@ -9,6 +9,7 @@
|
||||
#include "write-or-die.h"
|
||||
|
||||
static int use_stdin;
|
||||
static const char *mailmap_file, *mailmap_blob;
|
||||
static const char * const check_mailmap_usage[] = {
|
||||
N_("git check-mailmap [<options>] <contact>..."),
|
||||
NULL
|
||||
@ -16,6 +17,8 @@ NULL
|
||||
|
||||
static const struct option check_mailmap_options[] = {
|
||||
OPT_BOOL(0, "stdin", &use_stdin, N_("also read contacts from stdin")),
|
||||
OPT_FILENAME(0, "mailmap-file", &mailmap_file, N_("read additional mailmap entries from file")),
|
||||
OPT_STRING(0, "mailmap-blob", &mailmap_blob, N_("blob"), N_("read additional mailmap entries from blob")),
|
||||
OPT_END()
|
||||
};
|
||||
|
||||
@ -56,6 +59,10 @@ int cmd_check_mailmap(int argc, const char **argv, const char *prefix)
|
||||
die(_("no contacts specified"));
|
||||
|
||||
read_mailmap(&mailmap);
|
||||
if (mailmap_blob)
|
||||
read_mailmap_blob(&mailmap, mailmap_blob);
|
||||
if (mailmap_file)
|
||||
read_mailmap_file(&mailmap, mailmap_file, 0);
|
||||
|
||||
for (i = 0; i < argc; ++i)
|
||||
check_mailmap(&mailmap, argv[i]);
|
||||
|
@ -142,11 +142,8 @@ static void read_mailmap_line(struct string_list *map, char *buffer)
|
||||
add_mapping(map, name1, email1, name2, email2);
|
||||
}
|
||||
|
||||
/* Flags for read_mailmap_file() */
|
||||
#define MAILMAP_NOFOLLOW (1<<0)
|
||||
|
||||
static int read_mailmap_file(struct string_list *map, const char *filename,
|
||||
unsigned flags)
|
||||
int read_mailmap_file(struct string_list *map, const char *filename,
|
||||
unsigned flags)
|
||||
{
|
||||
char buffer[1024];
|
||||
FILE *f;
|
||||
@ -186,7 +183,7 @@ static void read_mailmap_string(struct string_list *map, char *buf)
|
||||
}
|
||||
}
|
||||
|
||||
static int read_mailmap_blob(struct string_list *map, const char *name)
|
||||
int read_mailmap_blob(struct string_list *map, const char *name)
|
||||
{
|
||||
struct object_id oid;
|
||||
char *buf;
|
||||
|
@ -6,6 +6,13 @@ struct string_list;
|
||||
extern char *git_mailmap_file;
|
||||
extern char *git_mailmap_blob;
|
||||
|
||||
/* Flags for read_mailmap_file() */
|
||||
#define MAILMAP_NOFOLLOW (1<<0)
|
||||
|
||||
int read_mailmap_file(struct string_list *map, const char *filename,
|
||||
unsigned flags);
|
||||
int read_mailmap_blob(struct string_list *map, const char *name);
|
||||
|
||||
int read_mailmap(struct string_list *map);
|
||||
void clear_mailmap(struct string_list *map);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user