From: Michael Witten <mfwitten@gmail.com>
To: git@vger.kernel.org
Subject: What's in a name? Let's use a (uuid,name,email) triplet
Date: Thu, 18 Mar 2010 06:23:11 -0700 (PDT) [thread overview]
Message-ID: <4ba2293f.c5c2f10a.5e9c.5c4a@mx.google.com> (raw)
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
next reply other threads:[~2010-03-18 13:29 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-18 13:23 Michael Witten [this message]
2010-03-18 13:48 ` What's in a name? Let's use a (uuid,name,email) triplet 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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4ba2293f.c5c2f10a.5e9c.5c4a@mx.google.com \
--to=mfwitten@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).