Adapted behaviour of ui.username() to documentation and mention it explicitly:
Searched in this order: $HGUSER, [ui] section of hgrcs, $EMAIL
and stop searching if one of these is set.
Abort if found username is an empty string to force specifying
the commit user elsewhere, e.g. with line option or repo hgrc.
If not found, use $LOGNAME or $USERNAME +"@full.hostname".
--- a/doc/hgrc.5.txt Tue Mar 21 12:54:32 2006 +0100
+++ b/doc/hgrc.5.txt Tue Mar 21 15:33:29 2006 +0100
@@ -257,7 +257,9 @@
username;;
The committer of a changeset created when running "commit".
Typically a person's name and email address, e.g. "Fred Widget
- <fred@example.com>". Default is $EMAIL or username@hostname.
+ <fred@example.com>". Default is $EMAIL or username@hostname, unless
+ username is set to an empty string, which enforces specifying the
+ username manually.
verbose;;
Increase the amount of output printed. True or False. Default is False.
--- a/mercurial/ui.py Tue Mar 21 12:54:32 2006 +0100
+++ b/mercurial/ui.py Tue Mar 21 15:33:29 2006 +0100
@@ -141,12 +141,26 @@
return ret
def username(self):
- return (os.environ.get("HGUSER") or
- self.config("ui", "username") or
- os.environ.get("EMAIL") or
- (os.environ.get("LOGNAME",
- os.environ.get("USERNAME", "unknown"))
- + '@' + socket.getfqdn()))
+ """Return default username to be used in commits.
+
+ Searched in this order: $HGUSER, [ui] section of hgrcs, $EMAIL
+ and stop searching if one of these is set.
+ Abort if found username is an empty string to force specifying
+ the commit user elsewhere, e.g. with line option or repo hgrc.
+ If not found, use $LOGNAME or $USERNAME +"@full.hostname".
+ """
+ user = os.environ.get("HGUSER")
+ if user is None:
+ user = self.config("ui", "username")
+ if user is None:
+ user = os.environ.get("EMAIL")
+ if user is None:
+ user = os.environ.get("LOGNAME") or os.environ.get("USERNAME")
+ if user:
+ user = "%s@%s" % (user, socket.getfqdn())
+ if not user:
+ raise util.Abort(_("Please specify a username."))
+ return user
def shortuser(self, user):
"""Return a short representation of a user name or email address."""