All of lore.kernel.org
 help / color / mirror / Atom feed
* What's in a name? Let's use a (uuid,name,email) triplet
@ 2010-03-18 13:23 Michael Witten
  2010-03-18 13:48 ` Jon Smirl
                   ` (6 more replies)
  0 siblings, 7 replies; 104+ messages in thread
From: Michael Witten @ 2010-03-18 13:23 UTC (permalink / raw)
  To: git

Short Version:
-------------


Rather than use a (name,email) pair to identify people, let's use
a (uuid,name,email) triplet.

The uuid can be any piece of information that a user of git determines
to be reasonably unique across space and time and that is intended to
be used by that user virtually forever (at least within a project's
history).

For instance, the uuid could be an OSF DCE 1.1 UUID or the SHA-1 of
some easily remembered, already reasonably unique information.

This could really help keep identifications clean, and it is rather
straightforward and possibly quite efficient.


Long Version:
------------


There are 2 reasons why people contribute (pro bono) to projects:

  (0) To improve the project.
  (1) To garner recognition.

and in my experience, (0) is not as sweet without (1).

One of the great boons of distributed systems like git is that they
separate author (contributor) identities from committer identities,
thereby maintaining (some semblance of) proper attribution in an
official, structured format that is amenable to parsing by tools.

While git's use of (name,email) pairs to identify each person is
extremely practical, it turns out that it's rather `unstable';
consider the following information gleaned from a clone of the
official git repository:

    $ git shortlog -se origin/master | grep Linus
         3  Linus Torvalds <torvalds@evo.osdl.org>
       122  Linus Torvalds <torvalds@g5.osdl.org>
       235  Linus Torvalds <torvalds@linux-foundation.org>
       276  Linus Torvalds <torvalds@osdl.org>
         9  Linus Torvalds <torvalds@ppc970.osdl.org.(none)>
       439  Linus Torvalds <torvalds@ppc970.osdl.org>
         9  Linus Torvalds <torvalds@woody.linux-foundation.org>

    $ git shortlog -se origin/master | grep Junio
      3658  Junio C Hamano <gitster@pobox.com>
         2  Junio C Hamano <junio@hera.kernel.org>
         3  Junio C Hamano <junio@kernel.org>
         3  Junio C Hamano <junio@pobox.com>
         8  Junio C Hamano <junio@twinsun.com>
      4167  Junio C Hamano <junkio@cox.net>
         2  Junio C Hamano <junkio@twinsun.com>
         2  Junio Hamano <gitster@pobox.com>

or using a clone of Linus's Linux repo:

    $ git shortlog -se origin/master | grep Linus
         2  Linus Luessing <linus.luessing@web.de>
         2  Linus Lüssing <linus.luessing@web.de>
         2  Linus Nilsson <lajnold@acc.umu.se>
         2  Linus Nilsson <lajnold@gmail.com>
        32  Linus Torvalds <torvalds@evo.osdl.org>
      1522  Linus Torvalds <torvalds@g5.osdl.org>
      4174  Linus Torvalds <torvalds@linux-foundation.org>
         7  Linus Torvalds <torvalds@macmini.osdl.org>
         2  Linus Torvalds <torvalds@merom.osdl.org>
         8  Linus Torvalds <torvalds@osdl.org>
         4  Linus Torvalds <torvalds@ppc970.osdl.org.(none)>
       166  Linus Torvalds <torvalds@ppc970.osdl.org>
         1  Linus Torvalds <torvalds@quad.osdl.org>
      1606  Linus Torvalds <torvalds@woody.linux-foundation.org>
       174  Linus Torvalds <torvalds@woody.osdl.org>
         1  Linus Walleij (LD/EAB <linus.walleij@ericsson.com>
         3  Linus Walleij <linus.ml.walleij@gmail.com>
         1  Linus Walleij <linus.walleij@ericsson.com>
        81  Linus Walleij <linus.walleij@stericsson.com>
         9  Linus Walleij <triad@df.lth.se>

    $ git shortlog -se origin/master | grep Morton
       581  Andrew Morton <akpm@linux-foundation.org>
       836  Andrew Morton <akpm@osdl.org>
         1  Andrew Morton <len.brown@intel.com>

From these few examples it seems pretty clear that the most volatile
portion of the (name,email) pair is the email, which is unfortunate
because the email is the most uniquely identifying information. Are
we really reasonably certain that these two are the same person?

    Linus Walleij <linus.ml.walleij@gmail.com>
    Linus Walleij <linus.walleij@ericsson.com>

Thus, I propose a more stable form of identification; rather than
using just a (name,email) pair, let's use a (uuid,name,email) triplet,
where the uuid can be any piece of information that a user of git
determines to be reasonably unique across space and time and that is
intended to be used by that user virtually forever (at least within a
project's history).

For instance, Linus is always stuck in his basement with the same
ancient computers, so he chooses to set up his few ~/.gitconfig
files with an OSF DCE 1.1 conforming UUID (generated by, say, uuidgen):

Linus Torvalds <torvalds@linux-foundation.org>

    [user]
        uuid  = 6b202ed1-e8ec-4048-84c2-ae0dd3b2df47
        name  = Linus Torvalds
        email = torvalds@linux-foundation.org

On the other hand, Junio is infatuated with the latest palmtop
computing gadgets and finds himself setting up a ~/.gitconfig file
several times each month; 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 <junkio@cox.net>):

    [user]
        uuid  = 6e99d26860f0b87ef4843fa838df2a918b85d1f7
        name  = Junio C Hamano
        email = gitster@pobox.com

I'm sure that some optimizations could made for certain choices like
UUID and SHA-1 strings.

Anyway, I think this could really help keep identifications clean,
and it is rather straightforward and possibly quite efficient.

Sincerely,
Michael Witten

^ permalink raw reply	[flat|nested] 104+ messages in thread

end of thread, other threads:[~2010-03-24 19:24 UTC | newest]

Thread overview: 104+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-03-18 13:23 What's in a name? Let's use a (uuid,name,email) triplet Michael Witten
2010-03-18 13:48 ` Jon Smirl
2010-03-18 14:26   ` Michael Witten
2010-03-18 17:27 ` Linus Torvalds
2010-03-18 19:02   ` Jon Smirl
2010-03-18 19:07     ` Linus Torvalds
2010-03-18 19:16       ` Jon Smirl
2010-03-18 19:20         ` Linus Torvalds
2010-03-18 19:37           ` Jon Smirl
2010-03-18 19:47             ` Linus Torvalds
2010-03-18 19:50               ` Linus Torvalds
2010-03-18 20:01                 ` Linus Torvalds
2010-03-19 19:39                   ` Junio C Hamano
2010-03-18 20:31                 ` Reece Dunn
2010-03-18 20:59                   ` Linus Torvalds
2010-03-18 19:32       ` Michael Witten
2010-03-18 19:40         ` Linus Torvalds
2010-03-18 19:47           ` Michael Witten
2010-03-18 19:52             ` Linus Torvalds
2010-03-18 20:00               ` Michael Witten
2010-03-18 19:52             ` Wincent Colaiuta
2010-03-18 19:40         ` Wincent Colaiuta
2010-03-18 19:42         ` Martin Langhoff
2010-03-18 22:36   ` Martin Langhoff
2010-03-18 23:17     ` Nicolas Pitre
2010-03-18 23:26       ` Jon Smirl
2010-03-18 23:34         ` Nicolas Pitre
2010-03-18 23:41           ` Jon Smirl
2010-03-18 23:58             ` Nicolas Pitre
2010-03-19  0:16               ` Jon Smirl
2010-03-19  0:17                 ` Linus Torvalds
2010-03-19  0:39                   ` Jon Smirl
2010-03-19  0:50                     ` Linus Torvalds
2010-03-19  1:12                       ` Jon Smirl
2010-03-19  1:45                         ` Nicolas Pitre
2010-03-19  2:05                           ` Jon Smirl
2010-03-18 23:34       ` Michael Witten
2010-03-18 18:42 ` Michael Witten
2010-03-18 18:47   ` Matthieu Moy
2010-03-18 18:57     ` Michael Witten
2010-03-18 19:12   ` Nicolas Pitre
2010-03-18 20:44   ` tytso
2010-03-18 21:12     ` Michael Witten
2010-03-18 21:19       ` Martin Langhoff
2010-03-18 21:29         ` Michael Witten
2010-03-18 21:39           ` Martin Langhoff
2010-03-18 21:46             ` Michael Witten
2010-03-18 21:55               ` Martin Langhoff
2010-03-18 22:02                 ` Michael Witten
2010-03-18 23:37                   ` Nicolas Pitre
2010-03-18 23:44                     ` Michael Witten
2010-03-19  0:03                       ` Nicolas Pitre
2010-03-19  0:27                         ` Michael Witten
2010-03-19  0:32                           ` Nicolas Pitre
2010-03-18 22:06               ` Reece Dunn
2010-03-18 21:57             ` Michael Witten
2010-03-19 12:34               ` Paolo Bonzini
2010-03-19 12:43                 ` Michael Witten
2010-03-19 12:53                   ` Paolo Bonzini
2010-03-19 13:03                     ` Michael Witten
2010-03-19 13:08                       ` Paolo Bonzini
2010-03-19 13:13                         ` Michael Witten
2010-03-19 13:41                           ` Wincent Colaiuta
2010-03-19 13:59                             ` Michael Witten
2010-03-19 14:13                               ` Martin Langhoff
2010-03-18 21:27       ` Linus Torvalds
2010-03-18 21:44         ` Michael Witten
2010-03-18 23:12         ` Jon Smirl
2010-03-18 22:17 ` A Large Angry SCM
2010-03-19  2:47 ` Sitaram Chamarty
2010-03-19  5:17   ` Nazri Ramliy
2010-03-19  8:41 ` Michael Haggerty
2010-03-19 11:39   ` Michael Witten
2010-03-19 11:45     ` david
2010-03-19 11:54       ` Mike Hommey
2010-03-19 12:09         ` Reece Dunn
2010-03-19 12:16           ` Michael Witten
2010-03-19 12:18             ` Michael Witten
2010-03-19 14:57             ` Reece Dunn
2010-03-19 15:26               ` Michael J Gruber
2010-03-19 16:05                 ` david
2010-03-19 17:16                   ` Michael Witten
2010-03-19 12:25           ` Jon Smirl
2010-03-19 12:40             ` Reece Dunn
2010-03-19 12:09         ` Michael Witten
2010-03-22 12:06           ` Mark Brown
2010-03-22 14:38           ` Michael Witten
2010-03-24 19:18             ` Erik Faye-Lund
2010-03-24 19:23               ` Michael Witten
2010-03-19 12:08       ` Michael Witten
2010-03-19 14:08     ` Michael Haggerty
2010-03-19 17:02       ` david
2010-03-19 17:06         ` Michael Witten
2010-03-24 18:50           ` Avi Kivity
2010-03-19 14:08 ` Jakub Narebski
2010-03-19 14:33   ` Jon Smirl
2010-03-19 14:52     ` Michael J Gruber
2010-03-19 14:40   ` Michael Witten
2010-03-19 14:56     ` Erik Faye-Lund
2010-03-19 15:05       ` Michael Witten
2010-03-19 15:12         ` Michael Witten
2010-03-19 15:25         ` Erik Faye-Lund
2010-03-19 15:12     ` Reece Dunn
2010-03-20  0:21     ` Jakub Narebski

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.