Subject: Re: What's in a name? Let's use a (uuid,name,email) triplet

From: Michael Witten <[email-masked]>
Date: Thu, 18 Mar 2010 11:42:44 -0700 (PDT)

Linus: Don't skim; read.

On Thu, Mar 18, 2010 at 12:27, Linus Torvalds <[email-masked]> wrote:
> So in practice, the only thing that would happen
> is that people make up random uuid's and they'd
> be different for every single machine they have,
> because absolutely NOBODY would ever bother to
> try to save and move their uuids around.
>
> ...
>
> please realize that the emails are _more_ stable
> than a uuid would ever be. Because an email
> actually has some emotional attachment to the
> person in question.

My anticipation of your response was uncanny:

    >> For instance, the uuid could be... the SHA-1
    >> of some easily remembered, already reasonably
    >> unique information.
    >>
    >> ...
    >>
    >> ...he doesn't want to bother remembering some
    >> long human-hostile string, so he adopts as
    >> his uuid the SHA-1 of some easily remembered
    >> piece of information like the very first
    >> (name,email) pair that he used for git
    >> (Junio C Hamano <[email-masked]>)

So, forget the original generality and let's
define the uuid as a SHA-1 of some EASILY
REMEMBERED, already reasonably unique piece of
information such as an old (name,email) pair.

To make life easier on people, git tools could automate
that process; to Junio, his just uuid is an old,
unchanging (name,email) pair:

    $ git config --global user.name  "Junio C Hamano"
    $ git config --global user.email "[email-masked]"
    $ git config --global --uuid "Junio C Hamano <[email-masked]>"

which produces something like:

    [user]
        name  = Junio C Hamano
        email = [email-masked]
        uuid  = 6e99d26860f0b87ef4843fa838df2a918b85d1f7

In fact those three steps should probably be
further automated anyway:

    $ git config --global --init
    Full Name? Junio C Hamano
    Email? [email-masked]
    UUID [Junio C Hamano <[email-masked]>]? Junio C Hamano <[email-masked]>

Set it and forget it in a completely human way.

Could people still bungle the uuid or enter trash?
Sure, but that's essentially no different than the
current situation. This would be an improvement,
because at least some people would take advantage
of it; in fact, I bet most people would use it
properly because:

    * The information required is easily remembered
      and reproduced; it has that emotional aspect.

    * People have an emotional attachment to getting
      proper attribution for their work, and this
      helps.

Moreover, storing and using the SHA-1 uuid would be
very efficient and allow for saner .mailmap hacks.

Sincerely,
Michael Witten