doc: provide guidance on user.name format
diff mbox series

Message ID 20190914210219.753136-1-sandals@crustytoothpaste.net
State New
Headers show
Series
  • doc: provide guidance on user.name format
Related show

Commit Message

brian m. carlson Sept. 14, 2019, 9:02 p.m. UTC
It's a frequent misconception that the user.name variable controls
authentication in some way, and as a result, beginning users frequently
attempt to change it when they're having authentication troubles.
Document that the convention is that this variable represents some form
of a human's personal name, although that is not required.  In addition,
address concerns about whether Unicode is supported.

Use the term "personal name" as this is likely to draw the intended
contrast, be applicable across cultures which may have different naming
conventions, and be easily understandable to people who do not speak
English as their first language.  Indicate that "some form" is
conventionally used, as people may use a nickname or preferred name
instead of a full legal name.

Point users who may be confused about authentication to an appropriate
configuration option instead.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
There are a *lot* of users on Stack Overflow who have difficulty with
what user.name controls, such that it may be one of the top questions.
Additionally, we occasionally see issues from new contributors to Git as
well.  Furthermore, other VCS systems do things differently, so it's
best to document the conventional expectations for users explicitly.

Users may or may not read the documentation, but at least we've done our
best at providing them helpful information should they choose to do so.

 Documentation/git-commit-tree.txt | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Junio C Hamano Sept. 15, 2019, 10:18 p.m. UTC | #1
"brian m. carlson" <sandals@crustytoothpaste.net> writes:

> Users may or may not read the documentation, but at least we've done our
> best at providing them helpful information should they choose to do so.

Good.

>  Documentation/git-commit-tree.txt | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/Documentation/git-commit-tree.txt b/Documentation/git-commit-tree.txt
> index 4b90b9c12a..34a8496b0e 100644
> --- a/Documentation/git-commit-tree.txt
> +++ b/Documentation/git-commit-tree.txt
> @@ -92,6 +92,12 @@ if set:
>  
>  (nb "<", ">" and "\n"s are stripped)
>  
> +The author and committer names are by convention some form of a personal name,
> +as opposed to a username, although Git does not enforce or require any
> +particular form.

I have a lot of trouble with 'username' in the context of this
paragraph.

After all, you are describing the name appropriate to be set as the
value of the user.name configuration, and you are trying to stress
that the name used there is different from and has nothing to do
with the name machines use to identify the user.  In the paragraph
that follows this new paragraph, there is a reference to "system
user name", which is still not great but probably better than
"username" above.  Perhaps there is a term that is distinct enough
from "user name" that is commonly used I am forgetting?  I am almost
tempted to say "user id", but there must be even better phrases.  I
dunno.

> Arbitrary Unicode may be used, subject to the constraints
> +listed above. This name has no effect on authentication; for that, see the
> +`credential.username` variable in linkgit::git-config[1].
> +
>  In case (some of) these environment variables are not set, the information
>  is taken from the configuration items user.name and user.email, or, if not
>  present, the environment variable EMAIL, or, if that is not set,

Thanks.
brian m. carlson Sept. 15, 2019, 10:57 p.m. UTC | #2
On 2019-09-15 at 22:18:07, Junio C Hamano wrote:
> "brian m. carlson" <sandals@crustytoothpaste.net> writes:
> > diff --git a/Documentation/git-commit-tree.txt b/Documentation/git-commit-tree.txt
> > index 4b90b9c12a..34a8496b0e 100644
> > --- a/Documentation/git-commit-tree.txt
> > +++ b/Documentation/git-commit-tree.txt
> > @@ -92,6 +92,12 @@ if set:
> >  
> >  (nb "<", ">" and "\n"s are stripped)
> >  
> > +The author and committer names are by convention some form of a personal name,
> > +as opposed to a username, although Git does not enforce or require any
> > +particular form.
> 
> I have a lot of trouble with 'username' in the context of this
> paragraph.
> 
> After all, you are describing the name appropriate to be set as the
> value of the user.name configuration, and you are trying to stress
> that the name used there is different from and has nothing to do
> with the name machines use to identify the user.  In the paragraph
> that follows this new paragraph, there is a reference to "system
> user name", which is still not great but probably better than
> "username" above.  Perhaps there is a term that is distinct enough
> from "user name" that is commonly used I am forgetting?  I am almost
> tempted to say "user id", but there must be even better phrases.  I
> dunno.

I wonder if we should just omit that aside, then, since I'm not sure of
a less ambiguous term for "how I identify myself to a computer".  I think
describing the convention as "some form of a personal name" is probably
sufficient to tell people what we suggest they do.

My first draft of that sentence didn't include the part within the
commas at all.

Patch
diff mbox series

diff --git a/Documentation/git-commit-tree.txt b/Documentation/git-commit-tree.txt
index 4b90b9c12a..34a8496b0e 100644
--- a/Documentation/git-commit-tree.txt
+++ b/Documentation/git-commit-tree.txt
@@ -92,6 +92,12 @@  if set:
 
 (nb "<", ">" and "\n"s are stripped)
 
+The author and committer names are by convention some form of a personal name,
+as opposed to a username, although Git does not enforce or require any
+particular form. Arbitrary Unicode may be used, subject to the constraints
+listed above. This name has no effect on authentication; for that, see the
+`credential.username` variable in linkgit::git-config[1].
+
 In case (some of) these environment variables are not set, the information
 is taken from the configuration items user.name and user.email, or, if not
 present, the environment variable EMAIL, or, if that is not set,