Include it directly from git-shortlog.txt, and refer to it from pretty-format.txt. Signed-off-by: Marius Storm-Olsen <marius@xxxxxxxxxxxxx> --- Documentation/git-blame.txt | 6 +++ Documentation/git-shortlog.txt | 89 ++++---------------------------------- Documentation/mailmap.txt | 75 ++++++++++++++++++++++++++++++++ Documentation/pretty-formats.txt | 8 ++-- 4 files changed, 94 insertions(+), 84 deletions(-) create mode 100644 Documentation/mailmap.txt diff --git a/Documentation/git-blame.txt b/Documentation/git-blame.txt index fba374d..6999cf2 100644 --- a/Documentation/git-blame.txt +++ b/Documentation/git-blame.txt @@ -184,6 +184,12 @@ there is ever added information (like the commit encoding or extended commit commentary), a blame viewer won't ever care. +MAPPING AUTHORS +--------------- + +include::mailmap.txt[] + + SEE ALSO -------- linkgit:git-annotate[1] diff --git a/Documentation/git-shortlog.txt b/Documentation/git-shortlog.txt index a0eaab5..42463a9 100644 --- a/Documentation/git-shortlog.txt +++ b/Documentation/git-shortlog.txt @@ -45,86 +45,15 @@ OPTIONS and subsequent lines are indented by `indent2` spaces. `width`, `indent1`, and `indent2` default to 76, 6 and 9 respectively. -FILES ------ - -If the file `.mailmap` exists at the toplevel of the repository, or at -the location pointed to by the mailmap.file configuration option, it -is used to map author and committer names and email addresses to -canonical real names and email addresses. -This mapping can be used to coalesce together commits by the same -person where their name and/or email address was spelled differently. - -In the simple form, each line in the file consists of the canonical -real name of an author, whitespace, and an email address used in the -commit (enclosed by '<' and '>') to map to the name. Thus, looks like -this --- - Proper Name <commit@xxxxxxxx> --- - -The more complex forms are --- - <proper@xxxxxxxx> <commit@xxxxxxxx> --- -which allows mailmap to replace only the email part of a commit, and --- - Proper Name <proper@xxxxxxxx> <commit@xxxxxxxx> --- -which allows mailmap to replace both the name and the email of a -commit matching the specified commit email address, and --- - Proper Name <proper@xxxxxxxx> Commit Name <commit@xxxxxxxx> --- -which allows mailmap to replace both the name and the email of a -commit matching both the specified commit name and email address. - -Example 1: Your history contains commits by two authors, Jane -and Joe, whose names appear in the repository under several forms: - ------------- -Joe Developer <joe@xxxxxxxxxxx> -Joe R. Developer <joe@xxxxxxxxxxx> -Jane Doe <jane@xxxxxxxxxxx> -Jane Doe <jane@laptop.(none)> -Jane D. <jane@desktop.(none)> ------------- - -Now suppose that Joe wants his middle name initial used, and Jane -prefers her family name fully spelled out. A proper `.mailmap` file -would look like: - ------------- -Jane Doe <jane@desktop.(none)> -Joe R. Developer <joe@xxxxxxxxxxx> ------------- - -Note how we don't need an entry for <jane@laptop.(none)>, because the -real name of that author is correct already, and coalesced directly. - -Example 2: Your repository contains commits from the following -authors: - ------------- -nick1 <bugs@xxxxxxxxxx> -nick2 <bugs@xxxxxxxxxx> -nick2 <nick2@xxxxxxxxxx> -santa <me@xxxxxxxxxx> -claus <me@xxxxxxxxxx> -CTO <cto@xxxxxxxxxxx> ------------- - -Then, you might want a `.mailmap` file looking like: ------------- -<cto@xxxxxxxxxx> <cto@xxxxxxxxxxx> -Some Dude <some@xxxxxxx> nick1 <bugs@xxxxxxxxxx> -Other Author <other@xxxxxxxxx> nick2 <bugs@xxxxxxxxxx> -Other Author <other@xxxxxxxxx> <nick2@xxxxxxxxxx> -Santa Claus <santa.claus@xxxxxxxxxxxx> <me@xxxxxxxxxx> ------------- - -Use hash '#' for comments that are either on their own line, or after -the email address. + +MAPPING AUTHORS +--------------- + +The `.mailmap` feature is used to coalesce together commits by the same +person in the shortlog, where their name and/or email address was +spelled differently. + +include::mailmap.txt[] Author diff --git a/Documentation/mailmap.txt b/Documentation/mailmap.txt new file mode 100644 index 0000000..e25b154 --- /dev/null +++ b/Documentation/mailmap.txt @@ -0,0 +1,75 @@ +If the file `.mailmap` exists at the toplevel of the repository, or at +the location pointed to by the mailmap.file configuration option, it +is used to map author and committer names and email addresses to +canonical real names and email addresses. + +In the simple form, each line in the file consists of the canonical +real name of an author, whitespace, and an email address used in the +commit (enclosed by '<' and '>') to map to the name. Thus, looks like +this +-- + Proper Name <commit@xxxxxxxx> +-- + +The more complex forms are +-- + <proper@xxxxxxxx> <commit@xxxxxxxx> +-- +which allows mailmap to replace only the email part of a commit, and +-- + Proper Name <proper@xxxxxxxx> <commit@xxxxxxxx> +-- +which allows mailmap to replace both the name and the email of a +commit matching the specified commit email address, and +-- + Proper Name <proper@xxxxxxxx> Commit Name <commit@xxxxxxxx> +-- +which allows mailmap to replace both the name and the email of a +commit matching both the specified commit name and email address. + +Example 1: Your history contains commits by two authors, Jane +and Joe, whose names appear in the repository under several forms: + +------------ +Joe Developer <joe@xxxxxxxxxxx> +Joe R. Developer <joe@xxxxxxxxxxx> +Jane Doe <jane@xxxxxxxxxxx> +Jane Doe <jane@laptop.(none)> +Jane D. <jane@desktop.(none)> +------------ + +Now suppose that Joe wants his middle name initial used, and Jane +prefers her family name fully spelled out. A proper `.mailmap` file +would look like: + +------------ +Jane Doe <jane@desktop.(none)> +Joe R. Developer <joe@xxxxxxxxxxx> +------------ + +Note how we don't need an entry for <jane@laptop.(none)>, because the +real name of that author is correct already. + +Example 2: Your repository contains commits from the following +authors: + +------------ +nick1 <bugs@xxxxxxxxxx> +nick2 <bugs@xxxxxxxxxx> +nick2 <nick2@xxxxxxxxxx> +santa <me@xxxxxxxxxx> +claus <me@xxxxxxxxxx> +CTO <cto@xxxxxxxxxxx> +------------ + +Then, you might want a `.mailmap` file looking like: +------------ +<cto@xxxxxxxxxx> <cto@xxxxxxxxxxx> +Some Dude <some@xxxxxxx> nick1 <bugs@xxxxxxxxxx> +Other Author <other@xxxxxxxxx> nick2 <bugs@xxxxxxxxxx> +Other Author <other@xxxxxxxxx> <nick2@xxxxxxxxxx> +Santa Claus <santa.claus@xxxxxxxxxxxx> <me@xxxxxxxxxx> +------------ + +Use hash '#' for comments that are either on their own line, or after +the email address. \ No newline at end of file diff --git a/Documentation/pretty-formats.txt b/Documentation/pretty-formats.txt index 28808b7..159390c 100644 --- a/Documentation/pretty-formats.txt +++ b/Documentation/pretty-formats.txt @@ -101,18 +101,18 @@ The placeholders are: - '%P': parent hashes - '%p': abbreviated parent hashes - '%an': author name -- '%aN': author name (respecting .mailmap) +- '%aN': author name (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) - '%ae': author email -- '%aE': author email (respecting .mailmap) +- '%aE': author email (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) - '%ad': author date (format respects --date= option) - '%aD': author date, RFC2822 style - '%ar': author date, relative - '%at': author date, UNIX timestamp - '%ai': author date, ISO 8601 format - '%cn': committer name -- '%cN': committer name (respecting .mailmap) +- '%cN': committer name (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) - '%ce': committer email -- '%cE': committer email (respecting .mailmap) +- '%cE': committer email (respecting .mailmap, see linkgit:git-shortlog[1] or linkgit:git-blame[1]) - '%cd': committer date - '%cD': committer date, RFC2822 style - '%cr': committer date, relative -- 1.6.1.2.354.g9a90 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html