git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC PATCH 2/2] docs: document a format for anonymous author and committer IDs

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Oct 2, 2022, 00:27 UTC
Message-ID
<Yzja6eSq15Q1a8Rs@tapette.crustytoothpaste.net>
In-Reply-To
<YzdQwNCtwAYjhKWp@tilde.club>
On 2022-09-30 at 20:26:41, Gwyneth Morgan wrote:
Show 9 quoted lines
> In general, I like this proposal. It seems like a good way forward.
> 
> It should be made very clear to the user that a commit authored by a
> key-derived ID does not imply the commit is signed by that key or
> provide any security guarantees; anyone can put anything in that field,
> same as it is now. I could see someone seeing a commit authored by
> <47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU@_.sha256.ssh.id.git-scm.com>
> and thinking that implies the commit was signed by
> `47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU`.
Of course.  I'll update that when I turn this into a real series.
Show 17 quoted lines
> On 2022-09-19 14:52:31+0000, brian m. carlson wrote:
> > +Anonymous IDs
> > +-------------
> > +
> > +Git will implement a new form of email address which is acceptable to existing
> > +implementations but is not valid according to RFC 1123.  This takes the form of
> > +an email address where the local-part contains the identifier and the domain
> > +portion starts with `_.` and then a domain specifier which specifies an
> > +authority and the meaning of the identifier.
> > +
> > +In such a case, Git will specify the username as a single U+2060 in UTF-8 (the
> > +byte sequence 0xE2 0x81 0xA0), which is a zero width non-breaking space.  This
> > +is compatible with existing implementations.
> 
> Could you add a note here explaining why that character was chosen for
> the name field? It seems like it would be easier to work with a single
> printable character like `?` or `X`, but maybe that doesn't matter here.

Sure, I'll include that there. The author field cannot be empty for compatibility reasons. Since there's nothing to put there until it's run through the mailmap, putting a single zero-width non-breaking space produces the same rendering as nothing, and it doesn't require special handling like "?" or "X". (Also, it should be noted that not all languages use "?" as the question mark.)

Note that if this is mapped in the mailmap, you don't need to actually put the personal name that exists in the commit. The mailmap rewrites based on the email address (or, in this case, the ID), so nobody ever has to write the U+2060 in the mailmap.

-- 
brian m. carlson (he/him or they/them)
Toronto, Ontario, CA
Previous: Gwyneth Morgan
Message 7 of 7 in “Opaque author and committer identifiers”
  1. 0/2 Opaque author and committer identifiersbrian m. carlson, Sep 19, 2022
  2. 1/2 doc: specify a header for including arbitrary format-patch metadatabrian m. carlson, Sep 19, 2022
  3. 2/2 docs: document a format for anonymous author and committer IDsbrian m. carlson, Sep 19, 2022
  4. Ævar Arnfjörð BjarmasonSep 20, 2022
  5. brian m. carlsonSep 22, 2022
  6. Gwyneth MorganSep 30, 2022
  7. brian m. carlsonOct 2, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.