Re: What's in a name? Let's use a (uuid,name,email) triplet
From: Reece Dunn <hidden>
Date: 2016-06-15 22:48:27
On 18 March 2010 21:46, Michael Witten [off-list ref] wrote:
On Thu, Mar 18, 2010 at 16:39, Martin Langhoff [off-list ref] wrote:quoted
Here's a hint: using your "uuid" model, I'll get some commits into a project with the wrong uuid. Because I made a typo, or changed machines (and a random uuid got created), whatever reason. So now in my project I appear under 2 uuids. What should we do in that case? Use mailmap to map the stray uuid to the "real" one?... Have we done a lot of work to get back to square 0?Again:quoted
quoted
At worst, things will be just like they have always been. Most likely, all that will happen is identification entropy won't increase nearly so rapidly and there might be other benefits such as shortlog speed improvements.
You have 3 pieces of information that can change by adding uuid instead of 2. Are people going to remember that they need to set a uuid when checking things into git? Different uuids? Forgetting the key string to generate the hash for the uuid? The uuid is another source of permutations that will see an increase in identity triples. It is also another thing that needs to be stored in a commit on disk and in memory, printed out in the shortlog and checked by people. Even if you generate a SHA-1 hash from a memorable bit of data, the resulting hash is not readable. It is something that could cause collisions with partial hashes in treeish queries (does 12ab34 refer to a commit, or to a persons uuid?). It is also meaningless to the user: I want to find Ted Ts'o's (I hope I've got the apostrophe in the correct place) commits - how do I know what uuid refers to his commits? How can I find it out? It is just adding more resistance, whereas with a well-configured .mailmap I could use one of his known email addresses, something that is easy to find and remember.
From what Linus and others have said, .mailmap is the way to fix name
and/or email changes. It may need more work to expose it to more commands, but that is the simplest, cleanest and most elegant approach to fixing the problem you specified. What about .mailmap does not solve your problem? Is it that it does not work for `git log`? If so, then write a patch to allow `git log` to use that information when you specify a certain flag (or pretty format string). NOTE: It is not just the author/committer that needs to remember/use the uuid - it is people doing analysis on commits, curious people, automated scripts and many others. - Reece